xref: /llvm-project/llvm/test/CodeGen/DirectX/isinf.ll (revision 011b618644113996e2c0a8e57db40f89d20878e3)
1cdfd884bSS. Bharadwaj Yadavalli; RUN: opt -S -dxil-op-lower -mtriple=dxil-pc-shadermodel6.3-library %s | FileCheck %s
23f395712SS. Bharadwaj Yadavalli
33f395712SS. Bharadwaj Yadavalli; Make sure dxil operation function calls for isinf are generated for float and half.
4c05e29bfSFarzon Lotfi
5c05e29bfSFarzon Lotfidefine noundef i1 @isinf_float(float noundef %a) {
6c05e29bfSFarzon Lotfientry:
7*011b6186SFinn Plummer  ; CHECK: call i1 @dx.op.isSpecialFloat.f32(i32 9, float %{{.*}}) #[[#ATTR:]]
8c05e29bfSFarzon Lotfi  %dx.isinf = call i1 @llvm.dx.isinf.f32(float %a)
9c05e29bfSFarzon Lotfi  ret i1 %dx.isinf
10c05e29bfSFarzon Lotfi}
11c05e29bfSFarzon Lotfi
12c05e29bfSFarzon Lotfidefine noundef i1 @isinf_half(half noundef %a) {
13c05e29bfSFarzon Lotfientry:
14*011b6186SFinn Plummer  ; CHECK: call i1 @dx.op.isSpecialFloat.f16(i32 9, half %{{.*}}) #[[#ATTR]]
15c05e29bfSFarzon Lotfi  %dx.isinf = call i1 @llvm.dx.isinf.f16(half %a)
163f395712SS. Bharadwaj Yadavalli  ret i1 %dx.isinf
173f395712SS. Bharadwaj Yadavalli}
183f395712SS. Bharadwaj Yadavalli
19*011b6186SFinn Plummer; CHECK: attributes #[[#ATTR]] = {{{.*}} memory(none) {{.*}}}
20c05e29bfSFarzon Lotfi
21c05e29bfSFarzon Lotfideclare i1 @llvm.dx.isinf.f16(half)
22c05e29bfSFarzon Lotfideclare i1 @llvm.dx.isinf.f32(float)
23