blob: 3f27370d70372a5a98e5b06395e6e30844e121c0 [file] [log] [blame]
Matt Arsenault03d85842016-06-27 20:32:13 +00001; RUN: llc -march=amdgcn -mattr=-promote-alloca -amdgpu-sroa=0 -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
2; RUN: llc -march=amdgcn -mcpu=tonga -mattr=-promote-alloca -amdgpu-sroa=0 -verify-machineinstrs < %s | FileCheck -check-prefix=SI -check-prefix=FUNC %s
Tom Stellardbc377682015-02-17 16:36:00 +00003
4; FUNC-LABEL: {{^}}load_i8_sext_private:
5; SI: buffer_load_sbyte v{{[0-9]+}}, v{{[0-9]+}}, s[{{[0-9]+:[0-9]+}}], s{{[0-9]+}} offen
6define void @load_i8_sext_private(i32 addrspace(1)* %out) {
7entry:
8 %tmp0 = alloca i8
David Blaikiea79ac142015-02-27 21:17:42 +00009 %tmp1 = load i8, i8* %tmp0
Tom Stellardbc377682015-02-17 16:36:00 +000010 %tmp2 = sext i8 %tmp1 to i32
11 store i32 %tmp2, i32 addrspace(1)* %out
12 ret void
13}
14
15; FUNC-LABEL: {{^}}load_i8_zext_private:
16; SI: buffer_load_ubyte v{{[0-9]+}}, v{{[0-9]+}}, s[{{[0-9]+:[0-9]+}}], s{{[0-9]+}} offen
17define void @load_i8_zext_private(i32 addrspace(1)* %out) {
18entry:
19 %tmp0 = alloca i8
David Blaikiea79ac142015-02-27 21:17:42 +000020 %tmp1 = load i8, i8* %tmp0
Tom Stellardbc377682015-02-17 16:36:00 +000021 %tmp2 = zext i8 %tmp1 to i32
22 store i32 %tmp2, i32 addrspace(1)* %out
23 ret void
24}
25
26; FUNC-LABEL: {{^}}load_i16_sext_private:
27; SI: buffer_load_sshort v{{[0-9]+}}, v{{[0-9]+}}, s[{{[0-9]+:[0-9]+}}], s{{[0-9]+}} offen
28define void @load_i16_sext_private(i32 addrspace(1)* %out) {
29entry:
30 %tmp0 = alloca i16
David Blaikiea79ac142015-02-27 21:17:42 +000031 %tmp1 = load i16, i16* %tmp0
Tom Stellardbc377682015-02-17 16:36:00 +000032 %tmp2 = sext i16 %tmp1 to i32
33 store i32 %tmp2, i32 addrspace(1)* %out
34 ret void
35}
36
37; FUNC-LABEL: {{^}}load_i16_zext_private:
38; SI: buffer_load_ushort v{{[0-9]+}}, v{{[0-9]+}}, s[{{[0-9]+:[0-9]+}}], s{{[0-9]+}} offen
39define void @load_i16_zext_private(i32 addrspace(1)* %out) {
40entry:
41 %tmp0 = alloca i16
Matt Arsenault03d85842016-06-27 20:32:13 +000042 %tmp1 = load volatile i16, i16* %tmp0
Tom Stellardbc377682015-02-17 16:36:00 +000043 %tmp2 = zext i16 %tmp1 to i32
44 store i32 %tmp2, i32 addrspace(1)* %out
45 ret void
46}