1; RUN: llc -march=amdgcn -mcpu=SI < %s | FileCheck -check-prefix=SI %s 2; RUN: llc -march=amdgcn -mcpu=tonga < %s | FileCheck -check-prefix=SI %s 3 4declare float @llvm.AMDGPU.cvt.f32.ubyte0(i32) nounwind readnone 5declare float @llvm.AMDGPU.cvt.f32.ubyte1(i32) nounwind readnone 6declare float @llvm.AMDGPU.cvt.f32.ubyte2(i32) nounwind readnone 7declare float @llvm.AMDGPU.cvt.f32.ubyte3(i32) nounwind readnone 8 9; SI-LABEL: {{^}}test_unpack_byte0_to_float: 10; SI: v_cvt_f32_ubyte0 11define void @test_unpack_byte0_to_float(float addrspace(1)* %out, i32 addrspace(1)* %in) nounwind { 12 %val = load i32, i32 addrspace(1)* %in, align 4 13 %cvt = call float @llvm.AMDGPU.cvt.f32.ubyte0(i32 %val) nounwind readnone 14 store float %cvt, float addrspace(1)* %out, align 4 15 ret void 16} 17 18; SI-LABEL: {{^}}test_unpack_byte1_to_float: 19; SI: v_cvt_f32_ubyte1 20define void @test_unpack_byte1_to_float(float addrspace(1)* %out, i32 addrspace(1)* %in) nounwind { 21 %val = load i32, i32 addrspace(1)* %in, align 4 22 %cvt = call float @llvm.AMDGPU.cvt.f32.ubyte1(i32 %val) nounwind readnone 23 store float %cvt, float addrspace(1)* %out, align 4 24 ret void 25} 26 27; SI-LABEL: {{^}}test_unpack_byte2_to_float: 28; SI: v_cvt_f32_ubyte2 29define void @test_unpack_byte2_to_float(float addrspace(1)* %out, i32 addrspace(1)* %in) nounwind { 30 %val = load i32, i32 addrspace(1)* %in, align 4 31 %cvt = call float @llvm.AMDGPU.cvt.f32.ubyte2(i32 %val) nounwind readnone 32 store float %cvt, float addrspace(1)* %out, align 4 33 ret void 34} 35 36; SI-LABEL: {{^}}test_unpack_byte3_to_float: 37; SI: v_cvt_f32_ubyte3 38define void @test_unpack_byte3_to_float(float addrspace(1)* %out, i32 addrspace(1)* %in) nounwind { 39 %val = load i32, i32 addrspace(1)* %in, align 4 40 %cvt = call float @llvm.AMDGPU.cvt.f32.ubyte3(i32 %val) nounwind readnone 41 store float %cvt, float addrspace(1)* %out, align 4 42 ret void 43} 44