|
1 |
| -// RUN: %dxc -T vs_6_0 -E main |
| 1 | +// RUN: %dxc -T vs_6_0 -E main -fcgl %s -spirv | FileCheck %s |
2 | 2 |
|
3 | 3 | void main() {
|
4 | 4 | // CHECK-LABEL: %bb_entry = OpLabel
|
5 | 5 |
|
6 | 6 | float1x1 a, b;
|
7 |
| -// CHECK: [[a0:%\d+]] = OpLoad %float %a |
8 |
| -// CHECK-NEXT: [[b0:%\d+]] = OpLoad %float %b |
9 |
| -// CHECK-NEXT: [[b1:%\d+]] = OpFAdd %float [[b0]] [[a0]] |
| 7 | +// CHECK: [[a0:%[0-9]+]] = OpLoad %float %a |
| 8 | +// CHECK-NEXT: [[b0:%[0-9]+]] = OpLoad %float %b |
| 9 | +// CHECK-NEXT: [[b1:%[0-9]+]] = OpFAdd %float [[b0]] [[a0]] |
10 | 10 | // CHECK-NEXT: OpStore %b [[b1]]
|
11 | 11 | b += a;
|
12 | 12 |
|
13 | 13 | float2x1 c, d;
|
14 |
| -// CHECK-NEXT: [[c0:%\d+]] = OpLoad %v2float %c |
15 |
| -// CHECK-NEXT: [[d0:%\d+]] = OpLoad %v2float %d |
16 |
| -// CHECK-NEXT: [[d1:%\d+]] = OpFSub %v2float [[d0]] [[c0]] |
| 14 | +// CHECK-NEXT: [[c0:%[0-9]+]] = OpLoad %v2float %c |
| 15 | +// CHECK-NEXT: [[d0:%[0-9]+]] = OpLoad %v2float %d |
| 16 | +// CHECK-NEXT: [[d1:%[0-9]+]] = OpFSub %v2float [[d0]] [[c0]] |
17 | 17 | // CHECK-NEXT: OpStore %d [[d1]]
|
18 | 18 | d -= c;
|
19 | 19 |
|
20 | 20 | float1x3 e, f;
|
21 |
| -// CHECK-NEXT: [[e0:%\d+]] = OpLoad %v3float %e |
22 |
| -// CHECK-NEXT: [[f0:%\d+]] = OpLoad %v3float %f |
23 |
| -// CHECK-NEXT: [[f1:%\d+]] = OpFMul %v3float [[f0]] [[e0]] |
| 21 | +// CHECK-NEXT: [[e0:%[0-9]+]] = OpLoad %v3float %e |
| 22 | +// CHECK-NEXT: [[f0:%[0-9]+]] = OpLoad %v3float %f |
| 23 | +// CHECK-NEXT: [[f1:%[0-9]+]] = OpFMul %v3float [[f0]] [[e0]] |
24 | 24 | // CHECK-NEXT: OpStore %f [[f1]]
|
25 | 25 | f *= e;
|
26 | 26 |
|
27 | 27 | float2x3 g, h;
|
28 |
| -// CHECK-NEXT: [[g0:%\d+]] = OpLoad %mat2v3float %g |
29 |
| -// CHECK-NEXT: [[h0:%\d+]] = OpLoad %mat2v3float %h |
30 |
| -// CHECK-NEXT: [[h0v0:%\d+]] = OpCompositeExtract %v3float [[h0]] 0 |
31 |
| -// CHECK-NEXT: [[g0v0:%\d+]] = OpCompositeExtract %v3float [[g0]] 0 |
32 |
| -// CHECK-NEXT: [[h1v0:%\d+]] = OpFDiv %v3float [[h0v0]] [[g0v0]] |
33 |
| -// CHECK-NEXT: [[h0v1:%\d+]] = OpCompositeExtract %v3float [[h0]] 1 |
34 |
| -// CHECK-NEXT: [[g0v1:%\d+]] = OpCompositeExtract %v3float [[g0]] 1 |
35 |
| -// CHECK-NEXT: [[h1v1:%\d+]] = OpFDiv %v3float [[h0v1]] [[g0v1]] |
36 |
| -// CHECK-NEXT: [[h1:%\d+]] = OpCompositeConstruct %mat2v3float [[h1v0]] [[h1v1]] |
| 28 | +// CHECK-NEXT: [[g0:%[0-9]+]] = OpLoad %mat2v3float %g |
| 29 | +// CHECK-NEXT: [[h0:%[0-9]+]] = OpLoad %mat2v3float %h |
| 30 | +// CHECK-NEXT: [[h0v0:%[0-9]+]] = OpCompositeExtract %v3float [[h0]] 0 |
| 31 | +// CHECK-NEXT: [[g0v0:%[0-9]+]] = OpCompositeExtract %v3float [[g0]] 0 |
| 32 | +// CHECK-NEXT: [[h1v0:%[0-9]+]] = OpFDiv %v3float [[h0v0]] [[g0v0]] |
| 33 | +// CHECK-NEXT: [[h0v1:%[0-9]+]] = OpCompositeExtract %v3float [[h0]] 1 |
| 34 | +// CHECK-NEXT: [[g0v1:%[0-9]+]] = OpCompositeExtract %v3float [[g0]] 1 |
| 35 | +// CHECK-NEXT: [[h1v1:%[0-9]+]] = OpFDiv %v3float [[h0v1]] [[g0v1]] |
| 36 | +// CHECK-NEXT: [[h1:%[0-9]+]] = OpCompositeConstruct %mat2v3float [[h1v0]] [[h1v1]] |
37 | 37 | // CHECK-NEXT: OpStore %h [[h1]]
|
38 | 38 | h /= g;
|
39 | 39 |
|
40 | 40 | float3x2 i, j;
|
41 |
| -// CHECK-NEXT: [[i0:%\d+]] = OpLoad %mat3v2float %i |
42 |
| -// CHECK-NEXT: [[j0:%\d+]] = OpLoad %mat3v2float %j |
43 |
| -// CHECK-NEXT: [[j0v0:%\d+]] = OpCompositeExtract %v2float [[j0]] 0 |
44 |
| -// CHECK-NEXT: [[i0v0:%\d+]] = OpCompositeExtract %v2float [[i0]] 0 |
45 |
| -// CHECK-NEXT: [[j1v0:%\d+]] = OpFRem %v2float [[j0v0]] [[i0v0]] |
46 |
| -// CHECK-NEXT: [[j0v1:%\d+]] = OpCompositeExtract %v2float [[j0]] 1 |
47 |
| -// CHECK-NEXT: [[i0v1:%\d+]] = OpCompositeExtract %v2float [[i0]] 1 |
48 |
| -// CHECK-NEXT: [[j1v1:%\d+]] = OpFRem %v2float [[j0v1]] [[i0v1]] |
49 |
| -// CHECK-NEXT: [[j0v2:%\d+]] = OpCompositeExtract %v2float [[j0]] 2 |
50 |
| -// CHECK-NEXT: [[i0v2:%\d+]] = OpCompositeExtract %v2float [[i0]] 2 |
51 |
| -// CHECK-NEXT: [[j1v2:%\d+]] = OpFRem %v2float [[j0v2]] [[i0v2]] |
52 |
| -// CHECK-NEXT: [[j1:%\d+]] = OpCompositeConstruct %mat3v2float [[j1v0]] [[j1v1]] [[j1v2]] |
| 41 | +// CHECK-NEXT: [[i0:%[0-9]+]] = OpLoad %mat3v2float %i |
| 42 | +// CHECK-NEXT: [[j0:%[0-9]+]] = OpLoad %mat3v2float %j |
| 43 | +// CHECK-NEXT: [[j0v0:%[0-9]+]] = OpCompositeExtract %v2float [[j0]] 0 |
| 44 | +// CHECK-NEXT: [[i0v0:%[0-9]+]] = OpCompositeExtract %v2float [[i0]] 0 |
| 45 | +// CHECK-NEXT: [[j1v0:%[0-9]+]] = OpFRem %v2float [[j0v0]] [[i0v0]] |
| 46 | +// CHECK-NEXT: [[j0v1:%[0-9]+]] = OpCompositeExtract %v2float [[j0]] 1 |
| 47 | +// CHECK-NEXT: [[i0v1:%[0-9]+]] = OpCompositeExtract %v2float [[i0]] 1 |
| 48 | +// CHECK-NEXT: [[j1v1:%[0-9]+]] = OpFRem %v2float [[j0v1]] [[i0v1]] |
| 49 | +// CHECK-NEXT: [[j0v2:%[0-9]+]] = OpCompositeExtract %v2float [[j0]] 2 |
| 50 | +// CHECK-NEXT: [[i0v2:%[0-9]+]] = OpCompositeExtract %v2float [[i0]] 2 |
| 51 | +// CHECK-NEXT: [[j1v2:%[0-9]+]] = OpFRem %v2float [[j0v2]] [[i0v2]] |
| 52 | +// CHECK-NEXT: [[j1:%[0-9]+]] = OpCompositeConstruct %mat3v2float [[j1v0]] [[j1v1]] [[j1v2]] |
53 | 53 | // CHECK-NEXT: OpStore %j [[j1]]
|
54 | 54 | j %= i;
|
55 | 55 |
|
56 | 56 | // Non-floating point matrices
|
57 | 57 |
|
58 | 58 | int2x3 k, l;
|
59 |
| -// CHECK-NEXT: [[k0:%\d+]] = OpLoad %_arr_v3int_uint_2 %k |
60 |
| -// CHECK-NEXT: [[l0:%\d+]] = OpLoad %_arr_v3int_uint_2 %l |
61 |
| -// CHECK-NEXT: [[l0v0:%\d+]] = OpCompositeExtract %v3int [[l0]] 0 |
62 |
| -// CHECK-NEXT: [[k0v0:%\d+]] = OpCompositeExtract %v3int [[k0]] 0 |
63 |
| -// CHECK-NEXT: [[l1v0:%\d+]] = OpIAdd %v3int [[l0v0]] [[k0v0]] |
64 |
| -// CHECK-NEXT: [[l0v1:%\d+]] = OpCompositeExtract %v3int [[l0]] 1 |
65 |
| -// CHECK-NEXT: [[k0v1:%\d+]] = OpCompositeExtract %v3int [[k0]] 1 |
66 |
| -// CHECK-NEXT: [[l1v1:%\d+]] = OpIAdd %v3int [[l0v1]] [[k0v1]] |
67 |
| -// CHECK-NEXT: [[l1:%\d+]] = OpCompositeConstruct %_arr_v3int_uint_2 [[l1v0]] [[l1v1]] |
| 59 | +// CHECK-NEXT: [[k0:%[0-9]+]] = OpLoad %_arr_v3int_uint_2 %k |
| 60 | +// CHECK-NEXT: [[l0:%[0-9]+]] = OpLoad %_arr_v3int_uint_2 %l |
| 61 | +// CHECK-NEXT: [[l0v0:%[0-9]+]] = OpCompositeExtract %v3int [[l0]] 0 |
| 62 | +// CHECK-NEXT: [[k0v0:%[0-9]+]] = OpCompositeExtract %v3int [[k0]] 0 |
| 63 | +// CHECK-NEXT: [[l1v0:%[0-9]+]] = OpIAdd %v3int [[l0v0]] [[k0v0]] |
| 64 | +// CHECK-NEXT: [[l0v1:%[0-9]+]] = OpCompositeExtract %v3int [[l0]] 1 |
| 65 | +// CHECK-NEXT: [[k0v1:%[0-9]+]] = OpCompositeExtract %v3int [[k0]] 1 |
| 66 | +// CHECK-NEXT: [[l1v1:%[0-9]+]] = OpIAdd %v3int [[l0v1]] [[k0v1]] |
| 67 | +// CHECK-NEXT: [[l1:%[0-9]+]] = OpCompositeConstruct %_arr_v3int_uint_2 [[l1v0]] [[l1v1]] |
68 | 68 | // CHECK-NEXT: OpStore %l [[l1]]
|
69 | 69 | l += k;
|
70 | 70 |
|
|
0 commit comments