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
2
2
3
3
; Make sure dxil operation function calls for isinf are generated for float and half.
4
4
@@ -16,7 +16,23 @@ entry:
16
16
ret i1 %dx.isinf
17
17
}
18
18
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
+ }
20
28
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