xref: /llvm-project/llvm/test/Bitcode/amdgcn-ldexp.ll (revision edecb6048148b7c22cfe567ccbf2dba5e1000bdc)
1; RUN: llvm-as < %s | llvm-dis | FileCheck %s
2
3define float @f32(float %a, i32 %b) {
4  ; CHECK: %call = call float @llvm.ldexp.f32.i32(float %a, i32 %b)
5  ; CHECK-NOT: amdgcn.ldexp
6  %call = call float @llvm.amdgcn.ldexp.f32(float %a, i32 %b)
7  ret float %call
8}
9
10define double @f64(double %a, i32 %b) {
11  ; CHECK: %call = call double @llvm.ldexp.f64.i32(double %a, i32 %b)
12  ; CHECK-NOT: amdgcn.ldexp
13  %call = call double @llvm.amdgcn.ldexp.f64(double %a, i32 %b)
14  ret double %call
15}
16
17define half @f16(half %a, i32 %b) {
18  ; CHECK: %call = call half @llvm.ldexp.f16.i32(half %a, i32 %b)
19  ; CHECK-NOT: amdgcn.ldexp
20  %call = call half @llvm.amdgcn.ldexp.f16(half %a, i32 %b)
21  ret half %call
22}
23
24declare half @llvm.amdgcn.ldexp.f16(half, i32)
25declare float @llvm.amdgcn.ldexp.f32(float, i32)
26declare double @llvm.amdgcn.ldexp.f64(double, i32)
27; CHECK: declare half @llvm.ldexp.f16.i32(half, i32)
28; CHECK: declare float @llvm.ldexp.f32.i32(float, i32)
29; CHECK: declare double @llvm.ldexp.f64.i32(double, i32)
30; CHECK-NOT: amdgcn.ldexp
31