shr.hlsl 651 B

1234567891011121314151617181920212223242526
  1. // RUN: %dxc -E main -T ps_6_0 -DDEFAULT %s | FileCheck %s -check-prefix=DEFAULT
  2. // RUN: %dxc -E main -T ps_6_0 -DUINT_SHIFT %s | FileCheck %s -check-prefix=UINT
  3. // RUN: %dxc -E main -T ps_6_0 -DINT_SHIFT %s | FileCheck %s -check-prefix=INT
  4. // Make sure generate ashr and lshr
  5. // DEFAULT:ashr
  6. // UINT:lshr
  7. // INT:ashr
  8. int i;
  9. #ifdef DEFAULT
  10. int half_btf(int w,int bit) { return (w + (1<<bit)) >> bit; }
  11. #endif
  12. #ifdef UINT_SHIFT
  13. int half_btf(int w,int bit) { return (w + (1U<<bit)) >> bit; }
  14. #endif
  15. #ifdef INT_SHIFT
  16. int half_btf(int w,int bit) { return (w + (1L<<bit)) >> bit; }
  17. #endif
  18. int main(int w:W) : SV_Target {
  19. return half_btf(i,12);
  20. }