| 
36 | 36 | 
 
  | 
37 | 37 | 
 
  | 
38 | 38 | // 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:%.*]]  | 
49 | 49 | // 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:%.*]]  | 
51 | 51 | // SPVCHECK: ret [[TYPE]] %fmod.i  | 
52 | 52 | half test_fmod_half(half p0, half p1) { return fmod(p0, p1); }  | 
53 | 53 | 
 
  | 
54 | 54 | // 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:%.*]]  | 
65 | 65 | // 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:%.*]]  | 
67 | 67 | // SPVCHECK: ret <2 x [[TYPE]]> %fmod.i  | 
68 | 68 | half2 test_fmod_half2(half2 p0, half2 p1) { return fmod(p0, p1); }  | 
69 | 69 | 
 
  | 
70 | 70 | // 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:%.*]]  | 
81 | 81 | // 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:%.*]]  | 
83 | 83 | // SPVCHECK: ret <3 x [[TYPE]]> %fmod.i  | 
84 | 84 | half3 test_fmod_half3(half3 p0, half3 p1) { return fmod(p0, p1); }  | 
85 | 85 | 
 
  | 
86 | 86 | // 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:%.*]]  | 
97 | 97 | // 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:%.*]]  | 
99 | 99 | // SPVCHECK: ret <4 x [[TYPE]]> %fmod.i  | 
100 | 100 | half4 test_fmod_half4(half4 p0, half4 p1) { return fmod(p0, p1); }  | 
101 | 101 | 
 
  | 
102 | 102 | // 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:%.*]]  | 
111 | 111 | // 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:%.*]]  | 
113 | 113 | // SPVCHECK: ret float %fmod.i  | 
114 | 114 | float test_fmod_float(float p0, float p1) { return fmod(p0, p1); }  | 
115 | 115 | 
 
  | 
116 | 116 | // 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:%.*]]  | 
125 | 125 | // 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:%.*]]  | 
127 | 127 | // SPVCHECK: ret <2 x float> %fmod.i  | 
128 | 128 | float2 test_fmod_float2(float2 p0, float2 p1) { return fmod(p0, p1); }  | 
129 | 129 | 
 
  | 
130 | 130 | // 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:%.*]]  | 
139 | 139 | // 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:%.*]]  | 
141 | 141 | // SPVCHECK: ret <3 x float> %fmod.i  | 
142 | 142 | float3 test_fmod_float3(float3 p0, float3 p1) { return fmod(p0, p1); }  | 
143 | 143 | 
 
  | 
144 | 144 | // 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:%.*]]  | 
153 | 153 | // 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:%.*]]  | 
155 | 155 | // SPVCHECK: ret <4 x float> %fmod.i  | 
156 | 156 | float4 test_fmod_float4(float4 p0, float4 p1) { return fmod(p0, p1); }  | 
157 | 157 | 
 
  | 
0 commit comments