@@ -91,3 +91,21 @@ int64_t4 test_lit_int64_t(int64_t NDotL, int64_t NDotH, int64_t M) { return lit(
9191// CHECK: %conv3.i = fptoui <4 x float> %{{.*}} to <4 x i64>
9292// CHECK: ret <4 x i64> %conv3.i
9393uint64_t4 test_lit_uint64_t (uint64_t NDotL, uint64_t NDotH, uint64_t M) { return lit (NDotL, NDotH, M); }
94+
95+ // CHECK-LABEL: test_lit_bool
96+ // CHECK: %conv.i = uitofp i1 %{{.*}} to float
97+ // CHECK: %conv4.i = uitofp i1 %{{.*}} to float
98+ // CHECK: %conv6.i = uitofp i1 %{{.*}} to float
99+ // CHECK: %cmp.i = fcmp reassoc nnan ninf nsz arcp afn olt float %{{.*}}, 0.000000e+00
100+ // CHECK: %hlsl.select.i = select reassoc nnan ninf nsz arcp afn i1 %{{.*}}, float 0.000000e+00, float %{{.*}}
101+ // CHECK: %vecinit.i = insertelement <4 x float> <float 1.000000e+00, float poison, float poison, float poison>, float %{{.*}}, i32 1
102+ // CHECK: %cmp4.i = fcmp reassoc nnan ninf nsz arcp afn olt float %{{.*}}, 0.000000e+00
103+ // CHECK: %hlsl.or.i = or i1 %{{.*}}, %cmp4.i
104+ // CHECK: %elt.log.i = call reassoc nnan ninf nsz arcp afn float @llvm.log.f32(float %{{.*}})
105+ // CHECK: %mul.i = fmul reassoc nnan ninf nsz arcp afn float %elt.log.i, %{{.*}}
106+ // CHECK: %elt.exp.i = call reassoc nnan ninf nsz arcp afn float @llvm.exp.f32(float %mul.i)
107+ // CHECK: %hlsl.select7.i = select reassoc nnan ninf nsz arcp afn i1 %{{.*}}, float 0.000000e+00, float %{{.*}}
108+ // CHECK: %vecins.i = insertelement <4 x float> %{{.*}}, float %hlsl.select7.i, i32 2
109+ // CHECK: %tobool.i = fcmp reassoc nnan ninf nsz arcp afn une <4 x float> %{{.*}}, zeroinitializer
110+ // CHECK: ret <4 x i1> %tobool.i
111+ bool4 test_lit_bool (bool NDotL, bool NDotH, bool M) { return lit (NDotL, NDotH, M); }
0 commit comments