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