1- ; RUN: opt -S -dxil-op-lower -mtriple=dxil-pc-shadermodel6.3-library %s | FileCheck %s
1+ ; RUN: opt -S -scalarizer - dxil-op-lower -mtriple=dxil-pc-shadermodel6.3-library %s | FileCheck %s
22
33; Make sure dxil operation function calls for isinf are generated for float and half.
44
@@ -16,7 +16,23 @@ entry:
1616 ret i1 %dx.isinf
1717}
1818
19- ; CHECK: attributes #[[#ATTR]] = {{{.*}} memory(none) {{.*}}}
19+ define noundef <4 x i1 > @isinf_half4 (<4 x half > noundef %p0 ) {
20+ entry:
21+ ; CHECK: call i1 @dx.op.isSpecialFloat.f16(i32 9, half
22+ ; CHECK: call i1 @dx.op.isSpecialFloat.f16(i32 9, half
23+ ; CHECK: call i1 @dx.op.isSpecialFloat.f16(i32 9, half
24+ ; CHECK: call i1 @dx.op.isSpecialFloat.f16(i32 9, half
25+ %hlsl.isinf = call <4 x i1 > @llvm.dx.isinf.v4f16 (<4 x half > %p0 )
26+ ret <4 x i1 > %hlsl.isinf
27+ }
2028
21- declare i1 @llvm.dx.isinf.f16 (half )
22- declare i1 @llvm.dx.isinf.f32 (float )
29+ define noundef <3 x i1 > @isinf_float3 (<3 x float > noundef %p0 ) {
30+ entry:
31+ ; CHECK: call i1 @dx.op.isSpecialFloat.f32(i32 9, float
32+ ; CHECK: call i1 @dx.op.isSpecialFloat.f32(i32 9, float
33+ ; CHECK: call i1 @dx.op.isSpecialFloat.f32(i32 9, float
34+ %hlsl.isinf = call <3 x i1 > @llvm.dx.isinf.v3f32 (<3 x float > %p0 )
35+ ret <3 x i1 > %hlsl.isinf
36+ }
37+
38+ ; CHECK: attributes #[[#ATTR]] = {{{.*}} memory(none) {{.*}}}
0 commit comments