1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=amdgcn -mattr=-promote-alloca -amdgpu-sroa=0 -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s 2*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=amdgcn -mcpu=tonga -mattr=-promote-alloca -amdgpu-sroa=0 -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}load_i8_sext_private: 5*9880d681SAndroid Build Coastguard Worker; SI: buffer_load_sbyte v{{[0-9]+}}, v{{[0-9]+}}, s[{{[0-9]+:[0-9]+}}], s{{[0-9]+}} offen 6*9880d681SAndroid Build Coastguard Workerdefine void @load_i8_sext_private(i32 addrspace(1)* %out) { 7*9880d681SAndroid Build Coastguard Workerentry: 8*9880d681SAndroid Build Coastguard Worker %tmp0 = alloca i8 9*9880d681SAndroid Build Coastguard Worker %tmp1 = load i8, i8* %tmp0 10*9880d681SAndroid Build Coastguard Worker %tmp2 = sext i8 %tmp1 to i32 11*9880d681SAndroid Build Coastguard Worker store i32 %tmp2, i32 addrspace(1)* %out 12*9880d681SAndroid Build Coastguard Worker ret void 13*9880d681SAndroid Build Coastguard Worker} 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}load_i8_zext_private: 16*9880d681SAndroid Build Coastguard Worker; SI: buffer_load_ubyte v{{[0-9]+}}, v{{[0-9]+}}, s[{{[0-9]+:[0-9]+}}], s{{[0-9]+}} offen 17*9880d681SAndroid Build Coastguard Workerdefine void @load_i8_zext_private(i32 addrspace(1)* %out) { 18*9880d681SAndroid Build Coastguard Workerentry: 19*9880d681SAndroid Build Coastguard Worker %tmp0 = alloca i8 20*9880d681SAndroid Build Coastguard Worker %tmp1 = load i8, i8* %tmp0 21*9880d681SAndroid Build Coastguard Worker %tmp2 = zext i8 %tmp1 to i32 22*9880d681SAndroid Build Coastguard Worker store i32 %tmp2, i32 addrspace(1)* %out 23*9880d681SAndroid Build Coastguard Worker ret void 24*9880d681SAndroid Build Coastguard Worker} 25*9880d681SAndroid Build Coastguard Worker 26*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}load_i16_sext_private: 27*9880d681SAndroid Build Coastguard Worker; SI: buffer_load_sshort v{{[0-9]+}}, v{{[0-9]+}}, s[{{[0-9]+:[0-9]+}}], s{{[0-9]+}} offen 28*9880d681SAndroid Build Coastguard Workerdefine void @load_i16_sext_private(i32 addrspace(1)* %out) { 29*9880d681SAndroid Build Coastguard Workerentry: 30*9880d681SAndroid Build Coastguard Worker %tmp0 = alloca i16 31*9880d681SAndroid Build Coastguard Worker %tmp1 = load i16, i16* %tmp0 32*9880d681SAndroid Build Coastguard Worker %tmp2 = sext i16 %tmp1 to i32 33*9880d681SAndroid Build Coastguard Worker store i32 %tmp2, i32 addrspace(1)* %out 34*9880d681SAndroid Build Coastguard Worker ret void 35*9880d681SAndroid Build Coastguard Worker} 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}load_i16_zext_private: 38*9880d681SAndroid Build Coastguard Worker; SI: buffer_load_ushort v{{[0-9]+}}, v{{[0-9]+}}, s[{{[0-9]+:[0-9]+}}], s{{[0-9]+}} offen 39*9880d681SAndroid Build Coastguard Workerdefine void @load_i16_zext_private(i32 addrspace(1)* %out) { 40*9880d681SAndroid Build Coastguard Workerentry: 41*9880d681SAndroid Build Coastguard Worker %tmp0 = alloca i16 42*9880d681SAndroid Build Coastguard Worker %tmp1 = load volatile i16, i16* %tmp0 43*9880d681SAndroid Build Coastguard Worker %tmp2 = zext i16 %tmp1 to i32 44*9880d681SAndroid Build Coastguard Worker store i32 %tmp2, i32 addrspace(1)* %out 45*9880d681SAndroid Build Coastguard Worker ret void 46*9880d681SAndroid Build Coastguard Worker} 47