| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- // Run: %dxc -T ps_6_0 -E main
- void main() {
- // CHECK-LABEL: %bb_entry = OpLabel
- bool r1;
- bool2 r2;
- bool3 r3;
- bool4 r4;
- int1 a, b;
- int2 i, j;
- uint3 m, n;
- float4 o, p;
- bool2 x, y;
- // CHECK: [[a0:%\d+]] = OpLoad %int %a
- // CHECK-NEXT: [[b0:%\d+]] = OpLoad %int %b
- // CHECK-NEXT: {{%\d+}} = OpSLessThan %bool [[a0]] [[b0]]
- r1 = a < b;
- // CHECK: [[a1:%\d+]] = OpLoad %int %a
- // CHECK-NEXT: [[b1:%\d+]] = OpLoad %int %b
- // CHECK-NEXT: {{%\d+}} = OpSLessThanEqual %bool [[a1]] [[b1]]
- r1 = a <= b;
- // CHECK: [[a2:%\d+]] = OpLoad %int %a
- // CHECK-NEXT: [[b2:%\d+]] = OpLoad %int %b
- // CHECK-NEXT: {{%\d+}} = OpSGreaterThan %bool [[a2]] [[b2]]
- r1 = a > b;
- // CHECK: [[a3:%\d+]] = OpLoad %int %a
- // CHECK-NEXT: [[b3:%\d+]] = OpLoad %int %b
- // CHECK-NEXT: {{%\d+}} = OpSGreaterThanEqual %bool [[a3]] [[b3]]
- r1 = a >= b;
- // CHECK: [[a4:%\d+]] = OpLoad %int %a
- // CHECK-NEXT: [[b4:%\d+]] = OpLoad %int %b
- // CHECK-NEXT: {{%\d+}} = OpIEqual %bool [[a4]] [[b4]]
- r1 = a == b;
- // CHECK: [[a5:%\d+]] = OpLoad %int %a
- // CHECK-NEXT: [[b5:%\d+]] = OpLoad %int %b
- // CHECK-NEXT: {{%\d+}} = OpINotEqual %bool [[a5]] [[b5]]
- r1 = a != b;
- // CHECK: [[i0:%\d+]] = OpLoad %v2int %i
- // CHECK-NEXT: [[j0:%\d+]] = OpLoad %v2int %j
- // CHECK-NEXT: {{%\d+}} = OpSLessThan %v2bool [[i0]] [[j0]]
- r2 = i < j;
- // CHECK: [[i1:%\d+]] = OpLoad %v2int %i
- // CHECK-NEXT: [[j1:%\d+]] = OpLoad %v2int %j
- // CHECK-NEXT: {{%\d+}} = OpSLessThanEqual %v2bool [[i1]] [[j1]]
- r2 = i <= j;
- // CHECK: [[i2:%\d+]] = OpLoad %v2int %i
- // CHECK-NEXT: [[j2:%\d+]] = OpLoad %v2int %j
- // CHECK-NEXT: {{%\d+}} = OpSGreaterThan %v2bool [[i2]] [[j2]]
- r2 = i > j;
- // CHECK: [[i3:%\d+]] = OpLoad %v2int %i
- // CHECK-NEXT: [[j3:%\d+]] = OpLoad %v2int %j
- // CHECK-NEXT: {{%\d+}} = OpSGreaterThanEqual %v2bool [[i3]] [[j3]]
- r2 = i >= j;
- // CHECK: [[i4:%\d+]] = OpLoad %v2int %i
- // CHECK-NEXT: [[j4:%\d+]] = OpLoad %v2int %j
- // CHECK-NEXT: {{%\d+}} = OpIEqual %v2bool [[i4]] [[j4]]
- r2 = i == j;
- // CHECK: [[i5:%\d+]] = OpLoad %v2int %i
- // CHECK-NEXT: [[j5:%\d+]] = OpLoad %v2int %j
- // CHECK-NEXT: {{%\d+}} = OpINotEqual %v2bool [[i5]] [[j5]]
- r2 = i != j;
- // CHECK: [[m0:%\d+]] = OpLoad %v3uint %m
- // CHECK-NEXT: [[n0:%\d+]] = OpLoad %v3uint %n
- // CHECK-NEXT: {{%\d+}} = OpULessThan %v3bool [[m0]] [[n0]]
- r3 = m < n;
- // CHECK: [[m1:%\d+]] = OpLoad %v3uint %m
- // CHECK-NEXT: [[n1:%\d+]] = OpLoad %v3uint %n
- // CHECK-NEXT: {{%\d+}} = OpULessThanEqual %v3bool [[m1]] [[n1]]
- r3 = m <= n;
- // CHECK: [[m2:%\d+]] = OpLoad %v3uint %m
- // CHECK-NEXT: [[n2:%\d+]] = OpLoad %v3uint %n
- // CHECK-NEXT: {{%\d+}} = OpUGreaterThan %v3bool [[m2]] [[n2]]
- r3 = m > n;
- // CHECK: [[m3:%\d+]] = OpLoad %v3uint %m
- // CHECK-NEXT: [[n3:%\d+]] = OpLoad %v3uint %n
- // CHECK-NEXT: {{%\d+}} = OpUGreaterThanEqual %v3bool [[m3]] [[n3]]
- r3 = m >= n;
- // CHECK: [[m4:%\d+]] = OpLoad %v3uint %m
- // CHECK-NEXT: [[n4:%\d+]] = OpLoad %v3uint %n
- // CHECK-NEXT: {{%\d+}} = OpIEqual %v3bool [[m4]] [[n4]]
- r3 = m == n;
- // CHECK: [[m5:%\d+]] = OpLoad %v3uint %m
- // CHECK-NEXT: [[n5:%\d+]] = OpLoad %v3uint %n
- // CHECK-NEXT: {{%\d+}} = OpINotEqual %v3bool [[m5]] [[n5]]
- r3 = m != n;
- // CHECK: [[o0:%\d+]] = OpLoad %v4float %o
- // CHECK-NEXT: [[p0:%\d+]] = OpLoad %v4float %p
- // CHECK-NEXT: {{%\d+}} = OpFOrdLessThan %v4bool [[o0]] [[p0]]
- r4 = o < p;
- // CHECK: [[o1:%\d+]] = OpLoad %v4float %o
- // CHECK-NEXT: [[p1:%\d+]] = OpLoad %v4float %p
- // CHECK-NEXT: {{%\d+}} = OpFOrdLessThanEqual %v4bool [[o1]] [[p1]]
- r4 = o <= p;
- // CHECK: [[o2:%\d+]] = OpLoad %v4float %o
- // CHECK-NEXT: [[p2:%\d+]] = OpLoad %v4float %p
- // CHECK-NEXT: {{%\d+}} = OpFOrdGreaterThan %v4bool [[o2]] [[p2]]
- r4 = o > p;
- // CHECK: [[o3:%\d+]] = OpLoad %v4float %o
- // CHECK-NEXT: [[p3:%\d+]] = OpLoad %v4float %p
- // CHECK-NEXT: {{%\d+}} = OpFOrdGreaterThanEqual %v4bool [[o3]] [[p3]]
- r4 = o >= p;
- // CHECK: [[o4:%\d+]] = OpLoad %v4float %o
- // CHECK-NEXT: [[p4:%\d+]] = OpLoad %v4float %p
- // CHECK-NEXT: {{%\d+}} = OpFOrdEqual %v4bool [[o4]] [[p4]]
- r4 = o == p;
- // CHECK: [[o5:%\d+]] = OpLoad %v4float %o
- // CHECK-NEXT: [[p5:%\d+]] = OpLoad %v4float %p
- // CHECK-NEXT: {{%\d+}} = OpFOrdNotEqual %v4bool [[o5]] [[p5]]
- r4 = o != p;
- // CHECK: [[x0:%\d+]] = OpLoad %v2bool %x
- // CHECK-NEXT: [[y0:%\d+]] = OpLoad %v2bool %y
- // CHECK-NEXT: {{%\d+}} = OpLogicalEqual %v2bool [[x0]] [[y0]]
- r2 = x == y;
- // CHECK: [[x1:%\d+]] = OpLoad %v2bool %x
- // CHECK-NEXT: [[y1:%\d+]] = OpLoad %v2bool %y
- // CHECK-NEXT: {{%\d+}} = OpLogicalNotEqual %v2bool [[x1]] [[y1]]
- r2 = x != y;
- }
|