1; RUN: llc < %s -march=r600 -mcpu=redwood | FileCheck %s --check-prefix=EG-CHECK 2; RUN: llc < %s -march=r600 -mcpu=cayman | FileCheck %s --check-prefix=EG-CHECK 3; RUN: llc < %s -march=r600 -mcpu=SI | FileCheck %s --check-prefix=SI-CHECK 4 5; EG-CHECK: @i8_arg 6; EG-CHECK: MOV {{[ *]*}}T{{[0-9]+\.[XYZW]}}, KC0[2].Z 7; SI-CHECK: BUFFER_LOAD_UBYTE 8 9define void @i8_arg(i32 addrspace(1)* nocapture %out, i8 %in) nounwind { 10entry: 11 %0 = zext i8 %in to i32 12 store i32 %0, i32 addrspace(1)* %out, align 4 13 ret void 14} 15 16; EG-CHECK: @i8_zext_arg 17; EG-CHECK: MOV {{[ *]*}}T{{[0-9]+\.[XYZW]}}, KC0[2].Z 18; SI-CHECK: S_LOAD_DWORD SGPR{{[0-9]}}, SGPR0_SGPR1, 11 19 20define void @i8_zext_arg(i32 addrspace(1)* nocapture %out, i8 zeroext %in) nounwind { 21entry: 22 %0 = zext i8 %in to i32 23 store i32 %0, i32 addrspace(1)* %out, align 4 24 ret void 25} 26 27; EG-CHECK: @i8_sext_arg 28; EG-CHECK: MOV {{[ *]*}}T{{[0-9]+\.[XYZW]}}, KC0[2].Z 29; SI-CHECK: S_LOAD_DWORD SGPR{{[0-9]}}, SGPR0_SGPR1, 11 30 31define void @i8_sext_arg(i32 addrspace(1)* nocapture %out, i8 signext %in) nounwind { 32entry: 33 %0 = sext i8 %in to i32 34 store i32 %0, i32 addrspace(1)* %out, align 4 35 ret void 36} 37 38; EG-CHECK: @i16_arg 39; EG-CHECK: MOV {{[ *]*}}T{{[0-9]+\.[XYZW]}}, KC0[2].Z 40; SI-CHECK: BUFFER_LOAD_USHORT 41 42define void @i16_arg(i32 addrspace(1)* nocapture %out, i16 %in) nounwind { 43entry: 44 %0 = zext i16 %in to i32 45 store i32 %0, i32 addrspace(1)* %out, align 4 46 ret void 47} 48 49; EG-CHECK: @i16_zext_arg 50; EG-CHECK: MOV {{[ *]*}}T{{[0-9]+\.[XYZW]}}, KC0[2].Z 51; SI-CHECK: S_LOAD_DWORD SGPR{{[0-9]}}, SGPR0_SGPR1, 11 52 53define void @i16_zext_arg(i32 addrspace(1)* nocapture %out, i16 zeroext %in) nounwind { 54entry: 55 %0 = zext i16 %in to i32 56 store i32 %0, i32 addrspace(1)* %out, align 4 57 ret void 58} 59 60; EG-CHECK: @i16_sext_arg 61; EG-CHECK: MOV {{[ *]*}}T{{[0-9]+\.[XYZW]}}, KC0[2].Z 62; SI-CHECK: S_LOAD_DWORD SGPR{{[0-9]}}, SGPR0_SGPR1, 11 63 64define void @i16_sext_arg(i32 addrspace(1)* nocapture %out, i16 signext %in) nounwind { 65entry: 66 %0 = sext i16 %in to i32 67 store i32 %0, i32 addrspace(1)* %out, align 4 68 ret void 69} 70