2
0

function_overload_ints.hlsl 1.5 KB

1234567891011121314151617181920212223
  1. // RUN: %dxc /Tps_6_2 /Emain > %s | FileCheck %s
  2. // CHECK: define void @main()
  3. // CHECK: %{{[a-z0-9]+}} = call i16 @dx.op.loadInput.i16(i32 4, i32 4, i32 0, i8 0, i32 undef)
  4. // CHECK: %{{[a-z0-9]+}} = call i16 @dx.op.loadInput.i16(i32 4, i32 3, i32 0, i8 0, i32 undef)
  5. // CHECK: %{{[a-z0-9]+}} = call i16 @dx.op.loadInput.i16(i32 4, i32 2, i32 0, i8 0, i32 undef)
  6. // CHECK: %{{[a-z0-9]+}} = call i32 @dx.op.loadInput.i32(i32 4, i32 1, i32 0, i8 0, i32 undef)
  7. // CHECK: %{{[a-z0-9]+}} = call i32 @dx.op.loadInput.i32(i32 4, i32 0, i32 0, i8 0, i32 undef)
  8. // CHECK: entry
  9. int4 foo(int v0, int v1, int v2, int v3) { return int4(v0, v0 * v1, v0 * v1 * v2, v0 * v1 * v2 * v3); }
  10. uint4 foo(uint v0, uint v1, uint v2, uint v3) { return uint4(v0, v0 * v1, v0 * v1 * v2, v0 * v1 * v2 * v3); }
  11. min16int4 foo(min16int v0, min16int v1, min16int v2, min16int v3) { return min16int4(v0, v0 * v1, v0 * v1 * v2, v0 * v1 * v2 * v3); }
  12. min12int4 foo(min12int v0, min12int v1, min12int v2, min12int v3) { return min12int4(v0, v0 * v1, v0 * v1 * v2, v0 * v1 * v2 * v3); }
  13. min16uint4 foo(min16uint v0, min16uint v1, min16uint v2, min16uint v3) { return min16uint4(v0, v0 * v1, v0 * v1 * v2, v0 * v1 * v2 * v3); }
  14. float4 main(int vi
  15. : A, uint vui
  16. : B, min16int vm16i
  17. : C, min12int vm12i
  18. : D, min16uint vm16ui
  19. : E) : SV_Target {
  20. return foo(vi, vi, vi, vi) + foo(vui, vui, vui, vui) + foo(vm16i, vm16i, vm16i, vm16i) + foo(vm12i, vm12i, vm12i, vm12i) + foo(vm16ui, vm16ui, vm16ui, vm16ui);
  21. }