[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / AMDGPU / llvm.amdgcn.ldexp.ll
blob1ab4e8b8063003d445c786f1409d1065bb70b895
1 ; RUN: llc -march=amdgcn -verify-machineinstrs < %s | FileCheck -check-prefix=SI %s
2 ; RUN: llc -march=amdgcn -mcpu=tonga -verify-machineinstrs < %s | FileCheck -check-prefix=SI %s
4 declare float @llvm.amdgcn.ldexp.f32(float, i32) nounwind readnone
5 declare double @llvm.amdgcn.ldexp.f64(double, i32) nounwind readnone
7 ; SI-LABEL: {{^}}test_ldexp_f32:
8 ; SI: v_ldexp_f32
9 ; SI: s_endpgm
10 define amdgpu_kernel void @test_ldexp_f32(float addrspace(1)* %out, float %a, i32 %b) nounwind {
11   %result = call float @llvm.amdgcn.ldexp.f32(float %a, i32 %b) nounwind readnone
12   store float %result, float addrspace(1)* %out, align 4
13   ret void
16 ; SI-LABEL: {{^}}test_ldexp_f64:
17 ; SI: v_ldexp_f64
18 ; SI: s_endpgm
19 define amdgpu_kernel void @test_ldexp_f64(double addrspace(1)* %out, double %a, i32 %b) nounwind {
20   %result = call double @llvm.amdgcn.ldexp.f64(double %a, i32 %b) nounwind readnone
21   store double %result, double addrspace(1)* %out, align 8
22   ret void
25 ; SI-LABEL: {{^}}test_ldexp_undef_f32:
26 ; SI-NOT: v_ldexp_f32
27 define amdgpu_kernel void @test_ldexp_undef_f32(float addrspace(1)* %out, i32 %b) nounwind {
28   %result = call float @llvm.amdgcn.ldexp.f32(float undef, i32 %b) nounwind readnone
29   store float %result, float addrspace(1)* %out, align 4
30   ret void