Skip to content

Commit f190de5

Browse files
committed
Modify fmod.hlsl tests to include operands of each instruction
1 parent 5e1e585 commit f190de5

File tree

1 file changed

+80
-80
lines changed

1 file changed

+80
-80
lines changed

clang/test/CodeGenHLSL/builtins/fmod.hlsl

+80-80
Original file line numberDiff line numberDiff line change
@@ -36,122 +36,122 @@
3636

3737

3838
// CHECK-LABEL: test_fmod_half
39-
// DXCHECK: %div1.i = fdiv reassoc nnan ninf nsz arcp afn [[TYPE]]
40-
// DXCHECK: %fneg.i = fneg reassoc nnan ninf nsz arcp afn [[TYPE]]
41-
// DXCHECK: %cmp.i = fcmp reassoc nnan ninf nsz arcp afn oge [[TYPE]]
42-
// DXNATIVE_HALF: %elt.abs.i = call reassoc nnan ninf nsz arcp afn [[TYPE]] @llvm.fabs.f16([[TYPE]]
43-
// DXNO_HALF: %elt.abs.i = call reassoc nnan ninf nsz arcp afn [[TYPE]] @llvm.fabs.f32([[TYPE]]
44-
// DXNATIVE_HALF: %hlsl.frac.i = call reassoc nnan ninf nsz arcp afn [[TYPE]] @llvm.dx.frac.f16([[TYPE]]
45-
// DXNO_HALF: %hlsl.frac.i = call reassoc nnan ninf nsz arcp afn [[TYPE]] @llvm.dx.frac.f32([[TYPE]]
46-
// DXCHECK: %fneg2.i = fneg reassoc nnan ninf nsz arcp afn [[TYPE]]
47-
// DXCHECK: %hlsl.select.i = select reassoc nnan ninf nsz arcp afn i1
48-
// DXCHECK: %mul.i = fmul reassoc nnan ninf nsz arcp afn [[TYPE]]
39+
// DXCHECK: %div1.i = fdiv reassoc nnan ninf nsz arcp afn [[TYPE]] [[X:%.*]], [[Y:%.*]]
40+
// DXCHECK: %fneg.i = fneg reassoc nnan ninf nsz arcp afn [[TYPE]] [[DIV1_I:%.*]]
41+
// DXCHECK: %cmp.i = fcmp reassoc nnan ninf nsz arcp afn oge [[TYPE]] [[DIV1_I_2:%.*]], %fneg.i
42+
// DXNATIVE_HALF: %elt.abs.i = call reassoc nnan ninf nsz arcp afn [[TYPE]] @llvm.fabs.f16([[TYPE]] [[DIV1_I_3:%.*]])
43+
// DXNO_HALF: %elt.abs.i = call reassoc nnan ninf nsz arcp afn [[TYPE]] @llvm.fabs.f32([[TYPE]] [[DIV1_I_3:%.*]])
44+
// DXNATIVE_HALF: %hlsl.frac.i = call reassoc nnan ninf nsz arcp afn [[TYPE]] @llvm.dx.frac.f16([[TYPE]] %elt.abs.i)
45+
// DXNO_HALF: %hlsl.frac.i = call reassoc nnan ninf nsz arcp afn [[TYPE]] @llvm.dx.frac.f32([[TYPE]] %elt.abs.i)
46+
// DXCHECK: %fneg2.i = fneg reassoc nnan ninf nsz arcp afn [[TYPE]] [[HLSL_FRAC_I:%.*]]
47+
// DXCHECK: %hlsl.select.i = select reassoc nnan ninf nsz arcp afn i1 [[CMP_I:%.*]], [[TYPE]] [[HLSL_FRAC_I_2:%.*]], [[TYPE]] %fneg2.i
48+
// DXCHECK: %mul.i = fmul reassoc nnan ninf nsz arcp afn [[TYPE]] %hlsl.select.i, [[Y_2:%.*]]
4949
// DXCHECK: ret [[TYPE]] %mul.i
50-
// SPVCHECK: %fmod.i = frem reassoc nnan ninf nsz arcp afn [[TYPE]]
50+
// SPVCHECK: %fmod.i = frem reassoc nnan ninf nsz arcp afn [[TYPE]] [[X:%.*]], [[Y:%.*]]
5151
// SPVCHECK: ret [[TYPE]] %fmod.i
5252
half test_fmod_half(half p0, half p1) { return fmod(p0, p1); }
5353

5454
// CHECK-LABEL: test_fmod_half2
55-
// DXCHECK: %div1.i = fdiv reassoc nnan ninf nsz arcp afn <2 x [[TYPE]]>
56-
// DXCHECK: %fneg.i = fneg reassoc nnan ninf nsz arcp afn <2 x [[TYPE]]>
57-
// DXCHECK: %cmp.i = fcmp reassoc nnan ninf nsz arcp afn oge <2 x [[TYPE]]>
58-
// DXNATIVE_HALF: %elt.abs.i = call reassoc nnan ninf nsz arcp afn <2 x [[TYPE]]> @llvm.fabs.v2f16(<2 x [[TYPE]]>
59-
// DXNO_HALF: %elt.abs.i = call reassoc nnan ninf nsz arcp afn <2 x [[TYPE]]> @llvm.fabs.v2f32(<2 x [[TYPE]]>
60-
// DXNATIVE_HALF: %hlsl.frac.i = call reassoc nnan ninf nsz arcp afn <2 x [[TYPE]]> @llvm.dx.frac.v2f16(<2 x [[TYPE]]>
61-
// DXNO_HALF: %hlsl.frac.i = call reassoc nnan ninf nsz arcp afn <2 x [[TYPE]]> @llvm.dx.frac.v2f32(<2 x [[TYPE]]>
62-
// DXCHECK: %fneg2.i = fneg reassoc nnan ninf nsz arcp afn <2 x [[TYPE]]>
63-
// DXCHECK: %hlsl.select.i = select reassoc nnan ninf nsz arcp afn <2 x i1>
64-
// DXCHECK: %mul.i = fmul reassoc nnan ninf nsz arcp afn <2 x [[TYPE]]>
55+
// DXCHECK: %div1.i = fdiv reassoc nnan ninf nsz arcp afn <2 x [[TYPE]]> [[X:%.*]], [[Y:%.*]]
56+
// DXCHECK: %fneg.i = fneg reassoc nnan ninf nsz arcp afn <2 x [[TYPE]]> [[DIV1_I:%.*]]
57+
// DXCHECK: %cmp.i = fcmp reassoc nnan ninf nsz arcp afn oge <2 x [[TYPE]]> [[DIV1_I_2:%.*]], %fneg.i
58+
// DXNATIVE_HALF: %elt.abs.i = call reassoc nnan ninf nsz arcp afn <2 x [[TYPE]]> @llvm.fabs.v2f16(<2 x [[TYPE]]> [[DIV1_I_3:%.*]])
59+
// DXNO_HALF: %elt.abs.i = call reassoc nnan ninf nsz arcp afn <2 x [[TYPE]]> @llvm.fabs.v2f32(<2 x [[TYPE]]> [[DIV1_I_3:%.*]])
60+
// DXNATIVE_HALF: %hlsl.frac.i = call reassoc nnan ninf nsz arcp afn <2 x [[TYPE]]> @llvm.dx.frac.v2f16(<2 x [[TYPE]]> %elt.abs.i)
61+
// DXNO_HALF: %hlsl.frac.i = call reassoc nnan ninf nsz arcp afn <2 x [[TYPE]]> @llvm.dx.frac.v2f32(<2 x [[TYPE]]> %elt.abs.i)
62+
// DXCHECK: %fneg2.i = fneg reassoc nnan ninf nsz arcp afn <2 x [[TYPE]]> [[HLSL_FRAC_I:%.*]]
63+
// DXCHECK: %hlsl.select.i = select reassoc nnan ninf nsz arcp afn <2 x i1> [[CMP_I:%.*]], <2 x [[TYPE]]> [[HLSL_FRAC_I_2:%.*]], <2 x [[TYPE]]> %fneg2.i
64+
// DXCHECK: %mul.i = fmul reassoc nnan ninf nsz arcp afn <2 x [[TYPE]]> %hlsl.select.i, [[Y_2:%.*]]
6565
// DXCHECK: ret <2 x [[TYPE]]> %mul.i
66-
// SPVCHECK: %fmod.i = frem reassoc nnan ninf nsz arcp afn <2 x [[TYPE]]>
66+
// SPVCHECK: %fmod.i = frem reassoc nnan ninf nsz arcp afn <2 x [[TYPE]]> [[X:%.*]], [[Y:%.*]]
6767
// SPVCHECK: ret <2 x [[TYPE]]> %fmod.i
6868
half2 test_fmod_half2(half2 p0, half2 p1) { return fmod(p0, p1); }
6969

7070
// CHECK-LABEL: test_fmod_half3
71-
// DXCHECK: %div1.i = fdiv reassoc nnan ninf nsz arcp afn <3 x [[TYPE]]>
72-
// DXCHECK: %fneg.i = fneg reassoc nnan ninf nsz arcp afn <3 x [[TYPE]]>
73-
// DXCHECK: %cmp.i = fcmp reassoc nnan ninf nsz arcp afn oge <3 x [[TYPE]]>
74-
// DXNATIVE_HALF: %elt.abs.i = call reassoc nnan ninf nsz arcp afn <3 x [[TYPE]]> @llvm.fabs.v3f16(<3 x [[TYPE]]>
75-
// DXNO_HALF: %elt.abs.i = call reassoc nnan ninf nsz arcp afn <3 x [[TYPE]]> @llvm.fabs.v3f32(<3 x [[TYPE]]>
76-
// DXNATIVE_HALF: %hlsl.frac.i = call reassoc nnan ninf nsz arcp afn <3 x [[TYPE]]> @llvm.dx.frac.v3f16(<3 x [[TYPE]]>
77-
// DXNO_HALF: %hlsl.frac.i = call reassoc nnan ninf nsz arcp afn <3 x [[TYPE]]> @llvm.dx.frac.v3f32(<3 x [[TYPE]]>
78-
// DXCHECK: %fneg2.i = fneg reassoc nnan ninf nsz arcp afn <3 x [[TYPE]]>
79-
// DXCHECK: %hlsl.select.i = select reassoc nnan ninf nsz arcp afn <3 x i1>
80-
// DXCHECK: %mul.i = fmul reassoc nnan ninf nsz arcp afn <3 x [[TYPE]]>
71+
// DXCHECK: %div1.i = fdiv reassoc nnan ninf nsz arcp afn <3 x [[TYPE]]> [[X:%.*]], [[Y:%.*]]
72+
// DXCHECK: %fneg.i = fneg reassoc nnan ninf nsz arcp afn <3 x [[TYPE]]> [[DIV1_I:%.*]]
73+
// DXCHECK: %cmp.i = fcmp reassoc nnan ninf nsz arcp afn oge <3 x [[TYPE]]> [[DIV1_I_2:%.*]], %fneg.i
74+
// DXNATIVE_HALF: %elt.abs.i = call reassoc nnan ninf nsz arcp afn <3 x [[TYPE]]> @llvm.fabs.v3f16(<3 x [[TYPE]]> [[DIV1_I_3:%.*]])
75+
// DXNO_HALF: %elt.abs.i = call reassoc nnan ninf nsz arcp afn <3 x [[TYPE]]> @llvm.fabs.v3f32(<3 x [[TYPE]]> [[DIV1_I_3:%.*]])
76+
// DXNATIVE_HALF: %hlsl.frac.i = call reassoc nnan ninf nsz arcp afn <3 x [[TYPE]]> @llvm.dx.frac.v3f16(<3 x [[TYPE]]> %elt.abs.i)
77+
// DXNO_HALF: %hlsl.frac.i = call reassoc nnan ninf nsz arcp afn <3 x [[TYPE]]> @llvm.dx.frac.v3f32(<3 x [[TYPE]]> %elt.abs.i)
78+
// DXCHECK: %fneg2.i = fneg reassoc nnan ninf nsz arcp afn <3 x [[TYPE]]> [[HLSL_FRAC_I:%.*]]
79+
// DXCHECK: %hlsl.select.i = select reassoc nnan ninf nsz arcp afn <3 x i1> [[CMP_I:%.*]], <3 x [[TYPE]]> [[HLSL_FRAC_I_2:%.*]], <3 x [[TYPE]]> %fneg2.i
80+
// DXCHECK: %mul.i = fmul reassoc nnan ninf nsz arcp afn <3 x [[TYPE]]> %hlsl.select.i, [[Y_2:%.*]]
8181
// DXCHECK: ret <3 x [[TYPE]]> %mul.i
82-
// SPVCHECK: %fmod.i = frem reassoc nnan ninf nsz arcp afn <3 x [[TYPE]]>
82+
// SPVCHECK: %fmod.i = frem reassoc nnan ninf nsz arcp afn <3 x [[TYPE]]> [[X:%.*]], [[Y:%.*]]
8383
// SPVCHECK: ret <3 x [[TYPE]]> %fmod.i
8484
half3 test_fmod_half3(half3 p0, half3 p1) { return fmod(p0, p1); }
8585

8686
// CHECK-LABEL: test_fmod_half4
87-
// DXCHECK: %div1.i = fdiv reassoc nnan ninf nsz arcp afn <4 x [[TYPE]]>
88-
// DXCHECK: %fneg.i = fneg reassoc nnan ninf nsz arcp afn <4 x [[TYPE]]>
89-
// DXCHECK: %cmp.i = fcmp reassoc nnan ninf nsz arcp afn oge <4 x [[TYPE]]>
90-
// DXNATIVE_HALF: %elt.abs.i = call reassoc nnan ninf nsz arcp afn <4 x [[TYPE]]> @llvm.fabs.v4f16(<4 x [[TYPE]]>
91-
// DXNO_HALF: %elt.abs.i = call reassoc nnan ninf nsz arcp afn <4 x [[TYPE]]> @llvm.fabs.v4f32(<4 x [[TYPE]]>
92-
// DXNATIVE_HALF: %hlsl.frac.i = call reassoc nnan ninf nsz arcp afn <4 x [[TYPE]]> @llvm.dx.frac.v4f16(<4 x [[TYPE]]>
93-
// DXNO_HALF: %hlsl.frac.i = call reassoc nnan ninf nsz arcp afn <4 x [[TYPE]]> @llvm.dx.frac.v4f32(<4 x [[TYPE]]>
94-
// DXCHECK: %fneg2.i = fneg reassoc nnan ninf nsz arcp afn <4 x [[TYPE]]>
95-
// DXCHECK: %hlsl.select.i = select reassoc nnan ninf nsz arcp afn <4 x i1>
96-
// DXCHECK: %mul.i = fmul reassoc nnan ninf nsz arcp afn <4 x [[TYPE]]>
87+
// DXCHECK: %div1.i = fdiv reassoc nnan ninf nsz arcp afn <4 x [[TYPE]]> [[X:%.*]], [[Y:%.*]]
88+
// DXCHECK: %fneg.i = fneg reassoc nnan ninf nsz arcp afn <4 x [[TYPE]]> [[DIV1_I:%.*]]
89+
// DXCHECK: %cmp.i = fcmp reassoc nnan ninf nsz arcp afn oge <4 x [[TYPE]]> [[DIV1_I_2:%.*]], %fneg.i
90+
// DXNATIVE_HALF: %elt.abs.i = call reassoc nnan ninf nsz arcp afn <4 x [[TYPE]]> @llvm.fabs.v4f16(<4 x [[TYPE]]> [[DIV1_I_3:%.*]])
91+
// DXNO_HALF: %elt.abs.i = call reassoc nnan ninf nsz arcp afn <4 x [[TYPE]]> @llvm.fabs.v4f32(<4 x [[TYPE]]> [[DIV1_I_3:%.*]])
92+
// DXNATIVE_HALF: %hlsl.frac.i = call reassoc nnan ninf nsz arcp afn <4 x [[TYPE]]> @llvm.dx.frac.v4f16(<4 x [[TYPE]]> %elt.abs.i)
93+
// DXNO_HALF: %hlsl.frac.i = call reassoc nnan ninf nsz arcp afn <4 x [[TYPE]]> @llvm.dx.frac.v4f32(<4 x [[TYPE]]> %elt.abs.i)
94+
// DXCHECK: %fneg2.i = fneg reassoc nnan ninf nsz arcp afn <4 x [[TYPE]]> [[HLSL_FRAC_I:%.*]]
95+
// DXCHECK: %hlsl.select.i = select reassoc nnan ninf nsz arcp afn <4 x i1> [[CMP_I:%.*]], <4 x [[TYPE]]> [[HLSL_FRAC_I_2:%.*]], <4 x [[TYPE]]> %fneg2.i
96+
// DXCHECK: %mul.i = fmul reassoc nnan ninf nsz arcp afn <4 x [[TYPE]]> %hlsl.select.i, [[Y_2:%.*]]
9797
// DXCHECK: ret <4 x [[TYPE]]> %mul.i
98-
// SPVCHECK: %fmod.i = frem reassoc nnan ninf nsz arcp afn <4 x [[TYPE]]>
98+
// SPVCHECK: %fmod.i = frem reassoc nnan ninf nsz arcp afn <4 x [[TYPE]]> [[X:%.*]], [[Y:%.*]]
9999
// SPVCHECK: ret <4 x [[TYPE]]> %fmod.i
100100
half4 test_fmod_half4(half4 p0, half4 p1) { return fmod(p0, p1); }
101101

102102
// CHECK-LABEL: test_fmod_float
103-
// DXCHECK: %div1.i = fdiv reassoc nnan ninf nsz arcp afn float
104-
// DXCHECK: %fneg.i = fneg reassoc nnan ninf nsz arcp afn float
105-
// DXCHECK: %cmp.i = fcmp reassoc nnan ninf nsz arcp afn oge float
106-
// DXCHECK: %elt.abs.i = call reassoc nnan ninf nsz arcp afn float @llvm.fabs.f32(float
107-
// DXCHECK: %hlsl.frac.i = call reassoc nnan ninf nsz arcp afn float @llvm.dx.frac.f32(float
108-
// DXCHECK: %fneg2.i = fneg reassoc nnan ninf nsz arcp afn float
109-
// DXCHECK: %hlsl.select.i = select reassoc nnan ninf nsz arcp afn i1
110-
// DXCHECK: %mul.i = fmul reassoc nnan ninf nsz arcp afn float
103+
// DXCHECK: %div1.i = fdiv reassoc nnan ninf nsz arcp afn float [[X:%.*]], [[Y:%.*]]
104+
// DXCHECK: %fneg.i = fneg reassoc nnan ninf nsz arcp afn float [[DIV1_I:%.*]]
105+
// DXCHECK: %cmp.i = fcmp reassoc nnan ninf nsz arcp afn oge float [[DIV1_I_2:%.*]], %fneg.i
106+
// DXCHECK: %elt.abs.i = call reassoc nnan ninf nsz arcp afn float @llvm.fabs.f32(float [[DIV1_I_3:%.*]])
107+
// DXCHECK: %hlsl.frac.i = call reassoc nnan ninf nsz arcp afn float @llvm.dx.frac.f32(float %elt.abs.i)
108+
// DXCHECK: %fneg2.i = fneg reassoc nnan ninf nsz arcp afn float [[HLSL_FRAC_I:%.*]]
109+
// DXCHECK: %hlsl.select.i = select reassoc nnan ninf nsz arcp afn i1 [[CMP_I:%.*]], float [[HLSL_FRAC_I_2:%.*]], float %fneg2.i
110+
// DXCHECK: %mul.i = fmul reassoc nnan ninf nsz arcp afn float %hlsl.select.i, [[Y_2:%.*]]
111111
// DXCHECK: ret float %mul.i
112-
// SPVCHECK: %fmod.i = frem reassoc nnan ninf nsz arcp afn float
112+
// SPVCHECK: %fmod.i = frem reassoc nnan ninf nsz arcp afn float [[X:%.*]], [[Y:%.*]]
113113
// SPVCHECK: ret float %fmod.i
114114
float test_fmod_float(float p0, float p1) { return fmod(p0, p1); }
115115

116116
// CHECK-LABEL: test_fmod_float2
117-
// DXCHECK: %div1.i = fdiv reassoc nnan ninf nsz arcp afn <2 x float>
118-
// DXCHECK: %fneg.i = fneg reassoc nnan ninf nsz arcp afn <2 x float>
119-
// DXCHECK: %cmp.i = fcmp reassoc nnan ninf nsz arcp afn oge <2 x float>
120-
// DXCHECK: %elt.abs.i = call reassoc nnan ninf nsz arcp afn <2 x float> @llvm.fabs.v2f32(<2 x float>
121-
// DXCHECK: %hlsl.frac.i = call reassoc nnan ninf nsz arcp afn <2 x float> @llvm.dx.frac.v2f32(<2 x float>
122-
// DXCHECK: %fneg2.i = fneg reassoc nnan ninf nsz arcp afn <2 x float>
123-
// DXCHECK: %hlsl.select.i = select reassoc nnan ninf nsz arcp afn <2 x i1>
124-
// DXCHECK: %mul.i = fmul reassoc nnan ninf nsz arcp afn <2 x float>
117+
// DXCHECK: %div1.i = fdiv reassoc nnan ninf nsz arcp afn <2 x float> [[X:%.*]], [[Y:%.*]]
118+
// DXCHECK: %fneg.i = fneg reassoc nnan ninf nsz arcp afn <2 x float> [[DIV1_I:%.*]]
119+
// DXCHECK: %cmp.i = fcmp reassoc nnan ninf nsz arcp afn oge <2 x float> [[DIV1_I_2:%.*]], %fneg.i
120+
// DXCHECK: %elt.abs.i = call reassoc nnan ninf nsz arcp afn <2 x float> @llvm.fabs.v2f32(<2 x float> [[DIV1_I_3:%.*]])
121+
// DXCHECK: %hlsl.frac.i = call reassoc nnan ninf nsz arcp afn <2 x float> @llvm.dx.frac.v2f32(<2 x float> %elt.abs.i)
122+
// DXCHECK: %fneg2.i = fneg reassoc nnan ninf nsz arcp afn <2 x float> [[HLSL_FRAC_I:%.*]]
123+
// DXCHECK: %hlsl.select.i = select reassoc nnan ninf nsz arcp afn <2 x i1> [[CMP_I:%.*]], <2 x float> [[HLSL_FRAC_I_2:%.*]], <2 x float> %fneg2.i
124+
// DXCHECK: %mul.i = fmul reassoc nnan ninf nsz arcp afn <2 x float> %hlsl.select.i, [[Y_2:%.*]]
125125
// DXCHECK: ret <2 x float> %mul.i
126-
// SPVCHECK: %fmod.i = frem reassoc nnan ninf nsz arcp afn <2 x float>
126+
// SPVCHECK: %fmod.i = frem reassoc nnan ninf nsz arcp afn <2 x float> [[X:%.*]], [[Y:%.*]]
127127
// SPVCHECK: ret <2 x float> %fmod.i
128128
float2 test_fmod_float2(float2 p0, float2 p1) { return fmod(p0, p1); }
129129

130130
// CHECK-LABEL: test_fmod_float3
131-
// DXCHECK: %div1.i = fdiv reassoc nnan ninf nsz arcp afn <3 x float>
132-
// DXCHECK: %fneg.i = fneg reassoc nnan ninf nsz arcp afn <3 x float>
133-
// DXCHECK: %cmp.i = fcmp reassoc nnan ninf nsz arcp afn oge <3 x float>
134-
// DXCHECK: %elt.abs.i = call reassoc nnan ninf nsz arcp afn <3 x float> @llvm.fabs.v3f32(<3 x float>
135-
// DXCHECK: %hlsl.frac.i = call reassoc nnan ninf nsz arcp afn <3 x float> @llvm.dx.frac.v3f32(<3 x float>
136-
// DXCHECK: %fneg2.i = fneg reassoc nnan ninf nsz arcp afn <3 x float>
137-
// DXCHECK: %hlsl.select.i = select reassoc nnan ninf nsz arcp afn <3 x i1>
138-
// DXCHECK: %mul.i = fmul reassoc nnan ninf nsz arcp afn <3 x float>
131+
// DXCHECK: %div1.i = fdiv reassoc nnan ninf nsz arcp afn <3 x float> [[X:%.*]], [[Y:%.*]]
132+
// DXCHECK: %fneg.i = fneg reassoc nnan ninf nsz arcp afn <3 x float> [[DIV1_I:%.*]]
133+
// DXCHECK: %cmp.i = fcmp reassoc nnan ninf nsz arcp afn oge <3 x float> [[DIV1_I_2:%.*]], %fneg.i
134+
// DXCHECK: %elt.abs.i = call reassoc nnan ninf nsz arcp afn <3 x float> @llvm.fabs.v3f32(<3 x float> [[DIV1_I_3:%.*]])
135+
// DXCHECK: %hlsl.frac.i = call reassoc nnan ninf nsz arcp afn <3 x float> @llvm.dx.frac.v3f32(<3 x float> %elt.abs.i)
136+
// DXCHECK: %fneg2.i = fneg reassoc nnan ninf nsz arcp afn <3 x float> [[HLSL_FRAC_I:%.*]]
137+
// DXCHECK: %hlsl.select.i = select reassoc nnan ninf nsz arcp afn <3 x i1> [[CMP_I:%.*]], <3 x float> [[HLSL_FRAC_I_2:%.*]], <3 x float> %fneg2.i
138+
// DXCHECK: %mul.i = fmul reassoc nnan ninf nsz arcp afn <3 x float> %hlsl.select.i, [[Y_2:%.*]]
139139
// DXCHECK: ret <3 x float> %mul.i
140-
// SPVCHECK: %fmod.i = frem reassoc nnan ninf nsz arcp afn <3 x float>
140+
// SPVCHECK: %fmod.i = frem reassoc nnan ninf nsz arcp afn <3 x float> [[X:%.*]], [[Y:%.*]]
141141
// SPVCHECK: ret <3 x float> %fmod.i
142142
float3 test_fmod_float3(float3 p0, float3 p1) { return fmod(p0, p1); }
143143

144144
// CHECK-LABEL: test_fmod_float4
145-
// DXCHECK: %div1.i = fdiv reassoc nnan ninf nsz arcp afn <4 x float>
146-
// DXCHECK: %fneg.i = fneg reassoc nnan ninf nsz arcp afn <4 x float>
147-
// DXCHECK: %cmp.i = fcmp reassoc nnan ninf nsz arcp afn oge <4 x float>
148-
// DXCHECK: %elt.abs.i = call reassoc nnan ninf nsz arcp afn <4 x float> @llvm.fabs.v4f32(<4 x float>
149-
// DXCHECK: %hlsl.frac.i = call reassoc nnan ninf nsz arcp afn <4 x float> @llvm.dx.frac.v4f32(<4 x float>
150-
// DXCHECK: %fneg2.i = fneg reassoc nnan ninf nsz arcp afn <4 x float>
151-
// DXCHECK: %hlsl.select.i = select reassoc nnan ninf nsz arcp afn <4 x i1>
152-
// DXCHECK: %mul.i = fmul reassoc nnan ninf nsz arcp afn <4 x float>
145+
// DXCHECK: %div1.i = fdiv reassoc nnan ninf nsz arcp afn <4 x float> [[X:%.*]], [[Y:%.*]]
146+
// DXCHECK: %fneg.i = fneg reassoc nnan ninf nsz arcp afn <4 x float> [[DIV1_I:%.*]]
147+
// DXCHECK: %cmp.i = fcmp reassoc nnan ninf nsz arcp afn oge <4 x float> [[DIV1_I_2:%.*]], %fneg.i
148+
// DXCHECK: %elt.abs.i = call reassoc nnan ninf nsz arcp afn <4 x float> @llvm.fabs.v4f32(<4 x float> [[DIV1_I_3:%.*]])
149+
// DXCHECK: %hlsl.frac.i = call reassoc nnan ninf nsz arcp afn <4 x float> @llvm.dx.frac.v4f32(<4 x float> %elt.abs.i)
150+
// DXCHECK: %fneg2.i = fneg reassoc nnan ninf nsz arcp afn <4 x float> [[HLSL_FRAC_I:%.*]]
151+
// DXCHECK: %hlsl.select.i = select reassoc nnan ninf nsz arcp afn <4 x i1> [[CMP_I:%.*]], <4 x float> [[HLSL_FRAC_I_2:%.*]], <4 x float> %fneg2.i
152+
// DXCHECK: %mul.i = fmul reassoc nnan ninf nsz arcp afn <4 x float> %hlsl.select.i, [[Y_2:%.*]]
153153
// DXCHECK: ret <4 x float> %mul.i
154-
// SPVCHECK: %fmod.i = frem reassoc nnan ninf nsz arcp afn <4 x float>
154+
// SPVCHECK: %fmod.i = frem reassoc nnan ninf nsz arcp afn <4 x float> [[X:%.*]], [[Y:%.*]]
155155
// SPVCHECK: ret <4 x float> %fmod.i
156156
float4 test_fmod_float4(float4 p0, float4 p1) { return fmod(p0, p1); }
157157

0 commit comments

Comments
 (0)