1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=amdgcn -verify-machineinstrs< %s | FileCheck -check-prefix=SI -check-prefix=ALIGNED %s 2*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=amdgcn -mcpu=bonaire -mattr=+unaligned-buffer-access -verify-machineinstrs< %s | FileCheck -check-prefix=SI -check-prefix=UNALIGNED %s 3*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=amdgcn -mcpu=tonga -verify-machineinstrs< %s | FileCheck -check-prefix=SI -check-prefix=ALIGNED %s 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Worker; SI-LABEL: {{^}}local_unaligned_load_store_i16: 6*9880d681SAndroid Build Coastguard Worker; SI: ds_read_u8 7*9880d681SAndroid Build Coastguard Worker; SI: ds_read_u8 8*9880d681SAndroid Build Coastguard Worker; SI: ds_write_b8 9*9880d681SAndroid Build Coastguard Worker; SI: ds_write_b8 10*9880d681SAndroid Build Coastguard Worker; SI: s_endpgm 11*9880d681SAndroid Build Coastguard Workerdefine void @local_unaligned_load_store_i16(i16 addrspace(3)* %p, i16 addrspace(3)* %r) #0 { 12*9880d681SAndroid Build Coastguard Worker %v = load i16, i16 addrspace(3)* %p, align 1 13*9880d681SAndroid Build Coastguard Worker store i16 %v, i16 addrspace(3)* %r, align 1 14*9880d681SAndroid Build Coastguard Worker ret void 15*9880d681SAndroid Build Coastguard Worker} 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard Worker; SI-LABEL: {{^}}global_unaligned_load_store_i16: 18*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 19*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 20*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 21*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Worker; UNALIGNED: buffer_load_ushort 24*9880d681SAndroid Build Coastguard Worker; UNALIGNED: buffer_store_short 25*9880d681SAndroid Build Coastguard Worker; SI: s_endpgm 26*9880d681SAndroid Build Coastguard Workerdefine void @global_unaligned_load_store_i16(i16 addrspace(1)* %p, i16 addrspace(1)* %r) #0 { 27*9880d681SAndroid Build Coastguard Worker %v = load i16, i16 addrspace(1)* %p, align 1 28*9880d681SAndroid Build Coastguard Worker store i16 %v, i16 addrspace(1)* %r, align 1 29*9880d681SAndroid Build Coastguard Worker ret void 30*9880d681SAndroid Build Coastguard Worker} 31*9880d681SAndroid Build Coastguard Worker 32*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}local_unaligned_load_store_i32: 33*9880d681SAndroid Build Coastguard Worker 34*9880d681SAndroid Build Coastguard Worker; SI: ds_read_u8 35*9880d681SAndroid Build Coastguard Worker; SI: ds_read_u8 36*9880d681SAndroid Build Coastguard Worker; SI: ds_read_u8 37*9880d681SAndroid Build Coastguard Worker; SI: ds_read_u8 38*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_or 39*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_lshl 40*9880d681SAndroid Build Coastguard Worker; SI: ds_write_b8 41*9880d681SAndroid Build Coastguard Worker; SI: ds_write_b8 42*9880d681SAndroid Build Coastguard Worker; SI: ds_write_b8 43*9880d681SAndroid Build Coastguard Worker; SI: ds_write_b8 44*9880d681SAndroid Build Coastguard Worker; SI: s_endpgm 45*9880d681SAndroid Build Coastguard Workerdefine void @local_unaligned_load_store_i32(i32 addrspace(3)* %p, i32 addrspace(3)* %r) #0 { 46*9880d681SAndroid Build Coastguard Worker %v = load i32, i32 addrspace(3)* %p, align 1 47*9880d681SAndroid Build Coastguard Worker store i32 %v, i32 addrspace(3)* %r, align 1 48*9880d681SAndroid Build Coastguard Worker ret void 49*9880d681SAndroid Build Coastguard Worker} 50*9880d681SAndroid Build Coastguard Worker 51*9880d681SAndroid Build Coastguard Worker; SI-LABEL: {{^}}global_unaligned_load_store_i32: 52*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 53*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 54*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 55*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 56*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 57*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 58*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 59*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 60*9880d681SAndroid Build Coastguard Worker 61*9880d681SAndroid Build Coastguard Worker; UNALIGNED: buffer_load_dword 62*9880d681SAndroid Build Coastguard Worker; UNALIGNED: buffer_store_dword 63*9880d681SAndroid Build Coastguard Workerdefine void @global_unaligned_load_store_i32(i32 addrspace(1)* %p, i32 addrspace(1)* %r) #0 { 64*9880d681SAndroid Build Coastguard Worker %v = load i32, i32 addrspace(1)* %p, align 1 65*9880d681SAndroid Build Coastguard Worker store i32 %v, i32 addrspace(1)* %r, align 1 66*9880d681SAndroid Build Coastguard Worker ret void 67*9880d681SAndroid Build Coastguard Worker} 68*9880d681SAndroid Build Coastguard Worker 69*9880d681SAndroid Build Coastguard Worker; SI-LABEL: {{^}}global_align2_load_store_i32: 70*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ushort 71*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ushort 72*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_short 73*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_short 74*9880d681SAndroid Build Coastguard Worker 75*9880d681SAndroid Build Coastguard Worker; UNALIGNED: buffer_load_dword 76*9880d681SAndroid Build Coastguard Worker; UNALIGNED: buffer_store_dword 77*9880d681SAndroid Build Coastguard Workerdefine void @global_align2_load_store_i32(i32 addrspace(1)* %p, i32 addrspace(1)* %r) #0 { 78*9880d681SAndroid Build Coastguard Worker %v = load i32, i32 addrspace(1)* %p, align 2 79*9880d681SAndroid Build Coastguard Worker store i32 %v, i32 addrspace(1)* %r, align 2 80*9880d681SAndroid Build Coastguard Worker ret void 81*9880d681SAndroid Build Coastguard Worker} 82*9880d681SAndroid Build Coastguard Worker 83*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}local_align2_load_store_i32: 84*9880d681SAndroid Build Coastguard Worker; GCN: ds_read_u16 85*9880d681SAndroid Build Coastguard Worker; GCN: ds_read_u16 86*9880d681SAndroid Build Coastguard Worker; GCN: ds_write_b16 87*9880d681SAndroid Build Coastguard Worker; GCN: ds_write_b16 88*9880d681SAndroid Build Coastguard Workerdefine void @local_align2_load_store_i32(i32 addrspace(3)* %p, i32 addrspace(3)* %r) #0 { 89*9880d681SAndroid Build Coastguard Worker %v = load i32, i32 addrspace(3)* %p, align 2 90*9880d681SAndroid Build Coastguard Worker store i32 %v, i32 addrspace(3)* %r, align 2 91*9880d681SAndroid Build Coastguard Worker ret void 92*9880d681SAndroid Build Coastguard Worker} 93*9880d681SAndroid Build Coastguard Worker 94*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}local_unaligned_load_store_i64: 95*9880d681SAndroid Build Coastguard Worker; SI: ds_read_u8 96*9880d681SAndroid Build Coastguard Worker; SI: ds_read_u8 97*9880d681SAndroid Build Coastguard Worker; SI: ds_read_u8 98*9880d681SAndroid Build Coastguard Worker; SI: ds_read_u8 99*9880d681SAndroid Build Coastguard Worker; SI: ds_read_u8 100*9880d681SAndroid Build Coastguard Worker; SI: ds_read_u8 101*9880d681SAndroid Build Coastguard Worker; SI: ds_read_u8 102*9880d681SAndroid Build Coastguard Worker; SI: ds_read_u8 103*9880d681SAndroid Build Coastguard Worker 104*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_or_b32 105*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_lshl 106*9880d681SAndroid Build Coastguard Worker; SI: ds_write_b8 107*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_or_b32 108*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_lshl 109*9880d681SAndroid Build Coastguard Worker 110*9880d681SAndroid Build Coastguard Worker; SI: ds_write_b8 111*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_or_b32 112*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_lshl 113*9880d681SAndroid Build Coastguard Worker 114*9880d681SAndroid Build Coastguard Worker; SI: ds_write_b8 115*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_or_b32 116*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_lshl 117*9880d681SAndroid Build Coastguard Worker 118*9880d681SAndroid Build Coastguard Worker; SI: ds_write_b8 119*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_or_b32 120*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_lshl 121*9880d681SAndroid Build Coastguard Worker 122*9880d681SAndroid Build Coastguard Worker; SI: ds_write_b8 123*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_or_b32 124*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_lshl 125*9880d681SAndroid Build Coastguard Worker 126*9880d681SAndroid Build Coastguard Worker; SI: ds_write_b8 127*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_or_b32 128*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_lshl 129*9880d681SAndroid Build Coastguard Worker 130*9880d681SAndroid Build Coastguard Worker; SI: ds_write_b8 131*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_or_b32 132*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_lshl 133*9880d681SAndroid Build Coastguard Worker; SI: ds_write_b8 134*9880d681SAndroid Build Coastguard Worker; SI: s_endpgm 135*9880d681SAndroid Build Coastguard Workerdefine void @local_unaligned_load_store_i64(i64 addrspace(3)* %p, i64 addrspace(3)* %r) #0 { 136*9880d681SAndroid Build Coastguard Worker %v = load i64, i64 addrspace(3)* %p, align 1 137*9880d681SAndroid Build Coastguard Worker store i64 %v, i64 addrspace(3)* %r, align 1 138*9880d681SAndroid Build Coastguard Worker ret void 139*9880d681SAndroid Build Coastguard Worker} 140*9880d681SAndroid Build Coastguard Worker 141*9880d681SAndroid Build Coastguard Worker; SI-LABEL: {{^}}local_unaligned_load_store_v2i32: 142*9880d681SAndroid Build Coastguard Worker; SI: ds_read_u8 143*9880d681SAndroid Build Coastguard Worker; SI: ds_read_u8 144*9880d681SAndroid Build Coastguard Worker; SI: ds_read_u8 145*9880d681SAndroid Build Coastguard Worker; SI: ds_read_u8 146*9880d681SAndroid Build Coastguard Worker; SI: ds_read_u8 147*9880d681SAndroid Build Coastguard Worker; SI: ds_read_u8 148*9880d681SAndroid Build Coastguard Worker; SI: ds_read_u8 149*9880d681SAndroid Build Coastguard Worker; SI: ds_read_u8 150*9880d681SAndroid Build Coastguard Worker 151*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_or_b32 152*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_lshl 153*9880d681SAndroid Build Coastguard Worker; SI: ds_write_b8 154*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_or_b32 155*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_lshl 156*9880d681SAndroid Build Coastguard Worker 157*9880d681SAndroid Build Coastguard Worker; SI: ds_write_b8 158*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_or_b32 159*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_lshl 160*9880d681SAndroid Build Coastguard Worker 161*9880d681SAndroid Build Coastguard Worker; SI: ds_write_b8 162*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_or_b32 163*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_lshl 164*9880d681SAndroid Build Coastguard Worker 165*9880d681SAndroid Build Coastguard Worker; SI: ds_write_b8 166*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_or_b32 167*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_lshl 168*9880d681SAndroid Build Coastguard Worker 169*9880d681SAndroid Build Coastguard Worker; SI: ds_write_b8 170*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_or_b32 171*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_lshl 172*9880d681SAndroid Build Coastguard Worker 173*9880d681SAndroid Build Coastguard Worker; SI: ds_write_b8 174*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_or_b32 175*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_lshl 176*9880d681SAndroid Build Coastguard Worker 177*9880d681SAndroid Build Coastguard Worker; SI: ds_write_b8 178*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_or_b32 179*9880d681SAndroid Build Coastguard Worker; SI-NOT: v_lshl 180*9880d681SAndroid Build Coastguard Worker; SI: ds_write_b8 181*9880d681SAndroid Build Coastguard Worker; SI: s_endpgm 182*9880d681SAndroid Build Coastguard Workerdefine void @local_unaligned_load_store_v2i32(<2 x i32> addrspace(3)* %p, <2 x i32> addrspace(3)* %r) #0 { 183*9880d681SAndroid Build Coastguard Worker %v = load <2 x i32>, <2 x i32> addrspace(3)* %p, align 1 184*9880d681SAndroid Build Coastguard Worker store <2 x i32> %v, <2 x i32> addrspace(3)* %r, align 1 185*9880d681SAndroid Build Coastguard Worker ret void 186*9880d681SAndroid Build Coastguard Worker} 187*9880d681SAndroid Build Coastguard Worker 188*9880d681SAndroid Build Coastguard Worker; SI-LABEL: {{^}}global_align2_load_store_i64: 189*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ushort 190*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ushort 191*9880d681SAndroid Build Coastguard Worker 192*9880d681SAndroid Build Coastguard Worker; ALIGNED-NOT: v_or_ 193*9880d681SAndroid Build Coastguard Worker; ALIGNED-NOT: v_lshl 194*9880d681SAndroid Build Coastguard Worker 195*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ushort 196*9880d681SAndroid Build Coastguard Worker 197*9880d681SAndroid Build Coastguard Worker; ALIGNED-NOT: v_or_ 198*9880d681SAndroid Build Coastguard Worker; ALIGNED-NOT: v_lshl 199*9880d681SAndroid Build Coastguard Worker 200*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ushort 201*9880d681SAndroid Build Coastguard Worker 202*9880d681SAndroid Build Coastguard Worker; ALIGNED-NOT: v_or_ 203*9880d681SAndroid Build Coastguard Worker; ALIGNED-NOT: v_lshl 204*9880d681SAndroid Build Coastguard Worker 205*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_short 206*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_short 207*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_short 208*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_short 209*9880d681SAndroid Build Coastguard Worker 210*9880d681SAndroid Build Coastguard Worker; UNALIGNED: buffer_load_dwordx2 211*9880d681SAndroid Build Coastguard Worker; UNALIGNED: buffer_store_dwordx2 212*9880d681SAndroid Build Coastguard Workerdefine void @global_align2_load_store_i64(i64 addrspace(1)* %p, i64 addrspace(1)* %r) #0 { 213*9880d681SAndroid Build Coastguard Worker %v = load i64, i64 addrspace(1)* %p, align 2 214*9880d681SAndroid Build Coastguard Worker store i64 %v, i64 addrspace(1)* %r, align 2 215*9880d681SAndroid Build Coastguard Worker ret void 216*9880d681SAndroid Build Coastguard Worker} 217*9880d681SAndroid Build Coastguard Worker 218*9880d681SAndroid Build Coastguard Worker; SI-LABEL: {{^}}unaligned_load_store_i64_global: 219*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 220*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 221*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 222*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 223*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 224*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 225*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 226*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 227*9880d681SAndroid Build Coastguard Worker 228*9880d681SAndroid Build Coastguard Worker; ALIGNED-NOT: v_or_ 229*9880d681SAndroid Build Coastguard Worker; ALIGNED-NOT: v_lshl 230*9880d681SAndroid Build Coastguard Worker 231*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 232*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 233*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 234*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 235*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 236*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 237*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 238*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 239*9880d681SAndroid Build Coastguard Worker 240*9880d681SAndroid Build Coastguard Worker; UNALIGNED: buffer_load_dwordx2 241*9880d681SAndroid Build Coastguard Worker; UNALIGNED: buffer_store_dwordx2 242*9880d681SAndroid Build Coastguard Workerdefine void @unaligned_load_store_i64_global(i64 addrspace(1)* %p, i64 addrspace(1)* %r) #0 { 243*9880d681SAndroid Build Coastguard Worker %v = load i64, i64 addrspace(1)* %p, align 1 244*9880d681SAndroid Build Coastguard Worker store i64 %v, i64 addrspace(1)* %r, align 1 245*9880d681SAndroid Build Coastguard Worker ret void 246*9880d681SAndroid Build Coastguard Worker} 247*9880d681SAndroid Build Coastguard Worker 248*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}local_unaligned_load_store_v4i32: 249*9880d681SAndroid Build Coastguard Worker; GCN: ds_read_u8 250*9880d681SAndroid Build Coastguard Worker; GCN: ds_read_u8 251*9880d681SAndroid Build Coastguard Worker; GCN: ds_read_u8 252*9880d681SAndroid Build Coastguard Worker; GCN: ds_read_u8 253*9880d681SAndroid Build Coastguard Worker 254*9880d681SAndroid Build Coastguard Worker; GCN: ds_read_u8 255*9880d681SAndroid Build Coastguard Worker; GCN: ds_read_u8 256*9880d681SAndroid Build Coastguard Worker; GCN: ds_read_u8 257*9880d681SAndroid Build Coastguard Worker; GCN: ds_read_u8 258*9880d681SAndroid Build Coastguard Worker 259*9880d681SAndroid Build Coastguard Worker; GCN: ds_read_u8 260*9880d681SAndroid Build Coastguard Worker; GCN: ds_read_u8 261*9880d681SAndroid Build Coastguard Worker; GCN: ds_read_u8 262*9880d681SAndroid Build Coastguard Worker; GCN: ds_read_u8 263*9880d681SAndroid Build Coastguard Worker 264*9880d681SAndroid Build Coastguard Worker; GCN: ds_read_u8 265*9880d681SAndroid Build Coastguard Worker; GCN: ds_read_u8 266*9880d681SAndroid Build Coastguard Worker; GCN: ds_read_u8 267*9880d681SAndroid Build Coastguard Worker; GCN: ds_read_u8 268*9880d681SAndroid Build Coastguard Worker 269*9880d681SAndroid Build Coastguard Worker; GCN: ds_write_b8 270*9880d681SAndroid Build Coastguard Worker; GCN: ds_write_b8 271*9880d681SAndroid Build Coastguard Worker; GCN: ds_write_b8 272*9880d681SAndroid Build Coastguard Worker; GCN: ds_write_b8 273*9880d681SAndroid Build Coastguard Worker 274*9880d681SAndroid Build Coastguard Worker; GCN: ds_write_b8 275*9880d681SAndroid Build Coastguard Worker; GCN: ds_write_b8 276*9880d681SAndroid Build Coastguard Worker; GCN: ds_write_b8 277*9880d681SAndroid Build Coastguard Worker; GCN: ds_write_b8 278*9880d681SAndroid Build Coastguard Worker 279*9880d681SAndroid Build Coastguard Worker; GCN: ds_write_b8 280*9880d681SAndroid Build Coastguard Worker; GCN: ds_write_b8 281*9880d681SAndroid Build Coastguard Worker; GCN: ds_write_b8 282*9880d681SAndroid Build Coastguard Worker; GCN: ds_write_b8 283*9880d681SAndroid Build Coastguard Worker 284*9880d681SAndroid Build Coastguard Worker; GCN: ds_write_b8 285*9880d681SAndroid Build Coastguard Worker; GCN: ds_write_b8 286*9880d681SAndroid Build Coastguard Worker; GCN: ds_write_b8 287*9880d681SAndroid Build Coastguard Worker; GCN: ds_write_b8 288*9880d681SAndroid Build Coastguard Worker; GCN: s_endpgm 289*9880d681SAndroid Build Coastguard Workerdefine void @local_unaligned_load_store_v4i32(<4 x i32> addrspace(3)* %p, <4 x i32> addrspace(3)* %r) #0 { 290*9880d681SAndroid Build Coastguard Worker %v = load <4 x i32>, <4 x i32> addrspace(3)* %p, align 1 291*9880d681SAndroid Build Coastguard Worker store <4 x i32> %v, <4 x i32> addrspace(3)* %r, align 1 292*9880d681SAndroid Build Coastguard Worker ret void 293*9880d681SAndroid Build Coastguard Worker} 294*9880d681SAndroid Build Coastguard Worker 295*9880d681SAndroid Build Coastguard Worker; SI-LABEL: {{^}}global_unaligned_load_store_v4i32 296*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 297*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 298*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 299*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 300*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 301*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 302*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 303*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 304*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 305*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 306*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 307*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 308*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 309*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 310*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 311*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 312*9880d681SAndroid Build Coastguard Worker 313*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 314*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 315*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 316*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 317*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 318*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 319*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 320*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 321*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 322*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 323*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 324*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 325*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 326*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 327*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 328*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_store_byte 329*9880d681SAndroid Build Coastguard Worker 330*9880d681SAndroid Build Coastguard Worker; UNALIGNED: buffer_load_dwordx4 331*9880d681SAndroid Build Coastguard Worker; UNALIGNED: buffer_store_dwordx4 332*9880d681SAndroid Build Coastguard Workerdefine void @global_unaligned_load_store_v4i32(<4 x i32> addrspace(1)* %p, <4 x i32> addrspace(1)* %r) #0 { 333*9880d681SAndroid Build Coastguard Worker %v = load <4 x i32>, <4 x i32> addrspace(1)* %p, align 1 334*9880d681SAndroid Build Coastguard Worker store <4 x i32> %v, <4 x i32> addrspace(1)* %r, align 1 335*9880d681SAndroid Build Coastguard Worker ret void 336*9880d681SAndroid Build Coastguard Worker} 337*9880d681SAndroid Build Coastguard Worker 338*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}local_load_i64_align_4: 339*9880d681SAndroid Build Coastguard Worker; GCN: ds_read2_b32 340*9880d681SAndroid Build Coastguard Workerdefine void @local_load_i64_align_4(i64 addrspace(1)* nocapture %out, i64 addrspace(3)* %in) #0 { 341*9880d681SAndroid Build Coastguard Worker %val = load i64, i64 addrspace(3)* %in, align 4 342*9880d681SAndroid Build Coastguard Worker store i64 %val, i64 addrspace(1)* %out, align 8 343*9880d681SAndroid Build Coastguard Worker ret void 344*9880d681SAndroid Build Coastguard Worker} 345*9880d681SAndroid Build Coastguard Worker 346*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}local_load_i64_align_4_with_offset 347*9880d681SAndroid Build Coastguard Worker; GCN: ds_read2_b32 v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]}} offset0:8 offset1:9 348*9880d681SAndroid Build Coastguard Workerdefine void @local_load_i64_align_4_with_offset(i64 addrspace(1)* nocapture %out, i64 addrspace(3)* %in) #0 { 349*9880d681SAndroid Build Coastguard Worker %ptr = getelementptr i64, i64 addrspace(3)* %in, i32 4 350*9880d681SAndroid Build Coastguard Worker %val = load i64, i64 addrspace(3)* %ptr, align 4 351*9880d681SAndroid Build Coastguard Worker store i64 %val, i64 addrspace(1)* %out, align 8 352*9880d681SAndroid Build Coastguard Worker ret void 353*9880d681SAndroid Build Coastguard Worker} 354*9880d681SAndroid Build Coastguard Worker 355*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}local_load_i64_align_4_with_split_offset: 356*9880d681SAndroid Build Coastguard Worker; The tests for the case where the lo offset is 8-bits, but the hi offset is 9-bits 357*9880d681SAndroid Build Coastguard Worker; GCN: ds_read2_b32 v[{{[0-9]+}}:{{[0-9]+}}], v{{[0-9]}} offset1:1 358*9880d681SAndroid Build Coastguard Worker; GCN: s_endpgm 359*9880d681SAndroid Build Coastguard Workerdefine void @local_load_i64_align_4_with_split_offset(i64 addrspace(1)* nocapture %out, i64 addrspace(3)* %in) #0 { 360*9880d681SAndroid Build Coastguard Worker %ptr = bitcast i64 addrspace(3)* %in to i32 addrspace(3)* 361*9880d681SAndroid Build Coastguard Worker %ptr255 = getelementptr i32, i32 addrspace(3)* %ptr, i32 255 362*9880d681SAndroid Build Coastguard Worker %ptri64 = bitcast i32 addrspace(3)* %ptr255 to i64 addrspace(3)* 363*9880d681SAndroid Build Coastguard Worker %val = load i64, i64 addrspace(3)* %ptri64, align 4 364*9880d681SAndroid Build Coastguard Worker store i64 %val, i64 addrspace(1)* %out, align 8 365*9880d681SAndroid Build Coastguard Worker ret void 366*9880d681SAndroid Build Coastguard Worker} 367*9880d681SAndroid Build Coastguard Worker 368*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}local_load_i64_align_1: 369*9880d681SAndroid Build Coastguard Worker; GCN: ds_read_u8 370*9880d681SAndroid Build Coastguard Worker; GCN: ds_read_u8 371*9880d681SAndroid Build Coastguard Worker; GCN: ds_read_u8 372*9880d681SAndroid Build Coastguard Worker; GCN: ds_read_u8 373*9880d681SAndroid Build Coastguard Worker; GCN: ds_read_u8 374*9880d681SAndroid Build Coastguard Worker; GCN: ds_read_u8 375*9880d681SAndroid Build Coastguard Worker; GCN: ds_read_u8 376*9880d681SAndroid Build Coastguard Worker; GCN: ds_read_u8 377*9880d681SAndroid Build Coastguard Worker; GCN: store_dwordx2 378*9880d681SAndroid Build Coastguard Workerdefine void @local_load_i64_align_1(i64 addrspace(1)* nocapture %out, i64 addrspace(3)* %in) #0 { 379*9880d681SAndroid Build Coastguard Worker %val = load i64, i64 addrspace(3)* %in, align 1 380*9880d681SAndroid Build Coastguard Worker store i64 %val, i64 addrspace(1)* %out, align 8 381*9880d681SAndroid Build Coastguard Worker ret void 382*9880d681SAndroid Build Coastguard Worker} 383*9880d681SAndroid Build Coastguard Worker 384*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}local_store_i64_align_4: 385*9880d681SAndroid Build Coastguard Worker; GCN: ds_write2_b32 386*9880d681SAndroid Build Coastguard Workerdefine void @local_store_i64_align_4(i64 addrspace(3)* %out, i64 %val) #0 { 387*9880d681SAndroid Build Coastguard Worker store i64 %val, i64 addrspace(3)* %out, align 4 388*9880d681SAndroid Build Coastguard Worker ret void 389*9880d681SAndroid Build Coastguard Worker} 390*9880d681SAndroid Build Coastguard Worker 391*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}local_store_i64_align_4_with_offset 392*9880d681SAndroid Build Coastguard Worker; GCN: ds_write2_b32 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}} offset0:8 offset1:9 393*9880d681SAndroid Build Coastguard Worker; GCN: s_endpgm 394*9880d681SAndroid Build Coastguard Workerdefine void @local_store_i64_align_4_with_offset(i64 addrspace(3)* %out) #0 { 395*9880d681SAndroid Build Coastguard Worker %ptr = getelementptr i64, i64 addrspace(3)* %out, i32 4 396*9880d681SAndroid Build Coastguard Worker store i64 0, i64 addrspace(3)* %ptr, align 4 397*9880d681SAndroid Build Coastguard Worker ret void 398*9880d681SAndroid Build Coastguard Worker} 399*9880d681SAndroid Build Coastguard Worker 400*9880d681SAndroid Build Coastguard Worker; FUNC-LABEL: {{^}}local_store_i64_align_4_with_split_offset: 401*9880d681SAndroid Build Coastguard Worker; The tests for the case where the lo offset is 8-bits, but the hi offset is 9-bits 402*9880d681SAndroid Build Coastguard Worker; GCN: ds_write2_b32 v{{[0-9]+}}, v{{[0-9]+}}, v{{[0-9]+}} offset1:1 403*9880d681SAndroid Build Coastguard Worker; GCN: s_endpgm 404*9880d681SAndroid Build Coastguard Workerdefine void @local_store_i64_align_4_with_split_offset(i64 addrspace(3)* %out) #0 { 405*9880d681SAndroid Build Coastguard Worker %ptr = bitcast i64 addrspace(3)* %out to i32 addrspace(3)* 406*9880d681SAndroid Build Coastguard Worker %ptr255 = getelementptr i32, i32 addrspace(3)* %ptr, i32 255 407*9880d681SAndroid Build Coastguard Worker %ptri64 = bitcast i32 addrspace(3)* %ptr255 to i64 addrspace(3)* 408*9880d681SAndroid Build Coastguard Worker store i64 0, i64 addrspace(3)* %out, align 4 409*9880d681SAndroid Build Coastguard Worker ret void 410*9880d681SAndroid Build Coastguard Worker} 411*9880d681SAndroid Build Coastguard Worker 412*9880d681SAndroid Build Coastguard Worker; SI-LABEL: {{^}}constant_unaligned_load_i32: 413*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 414*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 415*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 416*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 417*9880d681SAndroid Build Coastguard Worker 418*9880d681SAndroid Build Coastguard Worker; UNALIGNED: s_load_dword 419*9880d681SAndroid Build Coastguard Worker 420*9880d681SAndroid Build Coastguard Worker; SI: buffer_store_dword 421*9880d681SAndroid Build Coastguard Workerdefine void @constant_unaligned_load_i32(i32 addrspace(2)* %p, i32 addrspace(1)* %r) #0 { 422*9880d681SAndroid Build Coastguard Worker %v = load i32, i32 addrspace(2)* %p, align 1 423*9880d681SAndroid Build Coastguard Worker store i32 %v, i32 addrspace(1)* %r, align 4 424*9880d681SAndroid Build Coastguard Worker ret void 425*9880d681SAndroid Build Coastguard Worker} 426*9880d681SAndroid Build Coastguard Worker 427*9880d681SAndroid Build Coastguard Worker; SI-LABEL: {{^}}constant_align2_load_i32: 428*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ushort 429*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ushort 430*9880d681SAndroid Build Coastguard Worker 431*9880d681SAndroid Build Coastguard Worker; UNALIGNED: s_load_dword 432*9880d681SAndroid Build Coastguard Worker; UNALIGNED: buffer_store_dword 433*9880d681SAndroid Build Coastguard Workerdefine void @constant_align2_load_i32(i32 addrspace(2)* %p, i32 addrspace(1)* %r) #0 { 434*9880d681SAndroid Build Coastguard Worker %v = load i32, i32 addrspace(2)* %p, align 2 435*9880d681SAndroid Build Coastguard Worker store i32 %v, i32 addrspace(1)* %r, align 4 436*9880d681SAndroid Build Coastguard Worker ret void 437*9880d681SAndroid Build Coastguard Worker} 438*9880d681SAndroid Build Coastguard Worker 439*9880d681SAndroid Build Coastguard Worker; SI-LABEL: {{^}}constant_align2_load_i64: 440*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ushort 441*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ushort 442*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ushort 443*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ushort 444*9880d681SAndroid Build Coastguard Worker 445*9880d681SAndroid Build Coastguard Worker; UNALIGNED: s_load_dwordx2 446*9880d681SAndroid Build Coastguard Worker; UNALIGNED: buffer_store_dwordx2 447*9880d681SAndroid Build Coastguard Workerdefine void @constant_align2_load_i64(i64 addrspace(2)* %p, i64 addrspace(1)* %r) #0 { 448*9880d681SAndroid Build Coastguard Worker %v = load i64, i64 addrspace(2)* %p, align 2 449*9880d681SAndroid Build Coastguard Worker store i64 %v, i64 addrspace(1)* %r, align 4 450*9880d681SAndroid Build Coastguard Worker ret void 451*9880d681SAndroid Build Coastguard Worker} 452*9880d681SAndroid Build Coastguard Worker 453*9880d681SAndroid Build Coastguard Worker; SI-LABEL: {{^}}constant_align4_load_i64: 454*9880d681SAndroid Build Coastguard Worker; SI: s_load_dwordx2 455*9880d681SAndroid Build Coastguard Worker; SI: buffer_store_dwordx2 456*9880d681SAndroid Build Coastguard Workerdefine void @constant_align4_load_i64(i64 addrspace(2)* %p, i64 addrspace(1)* %r) #0 { 457*9880d681SAndroid Build Coastguard Worker %v = load i64, i64 addrspace(2)* %p, align 4 458*9880d681SAndroid Build Coastguard Worker store i64 %v, i64 addrspace(1)* %r, align 4 459*9880d681SAndroid Build Coastguard Worker ret void 460*9880d681SAndroid Build Coastguard Worker} 461*9880d681SAndroid Build Coastguard Worker 462*9880d681SAndroid Build Coastguard Worker; SI-LABEL: {{^}}constant_align4_load_v4i32: 463*9880d681SAndroid Build Coastguard Worker; SI: s_load_dwordx4 464*9880d681SAndroid Build Coastguard Worker; SI: buffer_store_dwordx4 465*9880d681SAndroid Build Coastguard Workerdefine void @constant_align4_load_v4i32(<4 x i32> addrspace(2)* %p, <4 x i32> addrspace(1)* %r) #0 { 466*9880d681SAndroid Build Coastguard Worker %v = load <4 x i32>, <4 x i32> addrspace(2)* %p, align 4 467*9880d681SAndroid Build Coastguard Worker store <4 x i32> %v, <4 x i32> addrspace(1)* %r, align 4 468*9880d681SAndroid Build Coastguard Worker ret void 469*9880d681SAndroid Build Coastguard Worker} 470*9880d681SAndroid Build Coastguard Worker 471*9880d681SAndroid Build Coastguard Worker; SI-LABEL: {{^}}constant_unaligned_load_v2i32: 472*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 473*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 474*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 475*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 476*9880d681SAndroid Build Coastguard Worker 477*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 478*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 479*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 480*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 481*9880d681SAndroid Build Coastguard Worker 482*9880d681SAndroid Build Coastguard Worker; UNALIGNED: buffer_load_dwordx2 483*9880d681SAndroid Build Coastguard Worker 484*9880d681SAndroid Build Coastguard Worker; SI: buffer_store_dwordx2 485*9880d681SAndroid Build Coastguard Workerdefine void @constant_unaligned_load_v2i32(<2 x i32> addrspace(2)* %p, <2 x i32> addrspace(1)* %r) #0 { 486*9880d681SAndroid Build Coastguard Worker %v = load <2 x i32>, <2 x i32> addrspace(2)* %p, align 1 487*9880d681SAndroid Build Coastguard Worker store <2 x i32> %v, <2 x i32> addrspace(1)* %r, align 4 488*9880d681SAndroid Build Coastguard Worker ret void 489*9880d681SAndroid Build Coastguard Worker} 490*9880d681SAndroid Build Coastguard Worker 491*9880d681SAndroid Build Coastguard Worker; SI-LABEL: {{^}}constant_unaligned_load_v4i32: 492*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 493*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 494*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 495*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 496*9880d681SAndroid Build Coastguard Worker 497*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 498*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 499*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 500*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 501*9880d681SAndroid Build Coastguard Worker 502*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 503*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 504*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 505*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 506*9880d681SAndroid Build Coastguard Worker 507*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 508*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 509*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 510*9880d681SAndroid Build Coastguard Worker; ALIGNED: buffer_load_ubyte 511*9880d681SAndroid Build Coastguard Worker 512*9880d681SAndroid Build Coastguard Worker; UNALIGNED: buffer_load_dwordx4 513*9880d681SAndroid Build Coastguard Worker 514*9880d681SAndroid Build Coastguard Worker; SI: buffer_store_dwordx4 515*9880d681SAndroid Build Coastguard Workerdefine void @constant_unaligned_load_v4i32(<4 x i32> addrspace(2)* %p, <4 x i32> addrspace(1)* %r) #0 { 516*9880d681SAndroid Build Coastguard Worker %v = load <4 x i32>, <4 x i32> addrspace(2)* %p, align 1 517*9880d681SAndroid Build Coastguard Worker store <4 x i32> %v, <4 x i32> addrspace(1)* %r, align 4 518*9880d681SAndroid Build Coastguard Worker ret void 519*9880d681SAndroid Build Coastguard Worker} 520*9880d681SAndroid Build Coastguard Worker 521*9880d681SAndroid Build Coastguard Worker; SI-LABEL: {{^}}constant_align4_load_i8: 522*9880d681SAndroid Build Coastguard Worker; SI: buffer_load_ubyte 523*9880d681SAndroid Build Coastguard Worker; SI: buffer_store_byte 524*9880d681SAndroid Build Coastguard Workerdefine void @constant_align4_load_i8(i8 addrspace(2)* %p, i8 addrspace(1)* %r) #0 { 525*9880d681SAndroid Build Coastguard Worker %v = load i8, i8 addrspace(2)* %p, align 4 526*9880d681SAndroid Build Coastguard Worker store i8 %v, i8 addrspace(1)* %r, align 4 527*9880d681SAndroid Build Coastguard Worker ret void 528*9880d681SAndroid Build Coastguard Worker} 529*9880d681SAndroid Build Coastguard Worker 530*9880d681SAndroid Build Coastguard Worker; SI-LABEL: {{^}}constant_align2_load_i8: 531*9880d681SAndroid Build Coastguard Worker; SI: buffer_load_ubyte 532*9880d681SAndroid Build Coastguard Worker; SI: buffer_store_byte 533*9880d681SAndroid Build Coastguard Workerdefine void @constant_align2_load_i8(i8 addrspace(2)* %p, i8 addrspace(1)* %r) #0 { 534*9880d681SAndroid Build Coastguard Worker %v = load i8, i8 addrspace(2)* %p, align 2 535*9880d681SAndroid Build Coastguard Worker store i8 %v, i8 addrspace(1)* %r, align 2 536*9880d681SAndroid Build Coastguard Worker ret void 537*9880d681SAndroid Build Coastguard Worker} 538*9880d681SAndroid Build Coastguard Worker 539*9880d681SAndroid Build Coastguard Worker; SI-LABEL: {{^}}constant_align4_merge_load_2_i32: 540*9880d681SAndroid Build Coastguard Worker; SI: s_load_dwordx2 s{{\[}}[[LO:[0-9]+]]:[[HI:[0-9]+]]{{\]}}, s{{\[[0-9]+:[0-9]+\]}}, 0x0{{$}} 541*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mov_b32_e32 v[[VLO:[0-9]+]], s[[LO]] 542*9880d681SAndroid Build Coastguard Worker; SI-DAG: v_mov_b32_e32 v[[VHI:[0-9]+]], s[[HI]] 543*9880d681SAndroid Build Coastguard Worker; SI: buffer_store_dwordx2 v{{\[}}[[VLO]]:[[VHI]]{{\]}} 544*9880d681SAndroid Build Coastguard Workerdefine void @constant_align4_merge_load_2_i32(i32 addrspace(2)* %p, i32 addrspace(1)* %r) #0 { 545*9880d681SAndroid Build Coastguard Worker %gep0 = getelementptr i32, i32 addrspace(2)* %p, i64 1 546*9880d681SAndroid Build Coastguard Worker %v0 = load i32, i32 addrspace(2)* %p, align 4 547*9880d681SAndroid Build Coastguard Worker %v1 = load i32, i32 addrspace(2)* %gep0, align 4 548*9880d681SAndroid Build Coastguard Worker 549*9880d681SAndroid Build Coastguard Worker %gep1 = getelementptr i32, i32 addrspace(1)* %r, i64 1 550*9880d681SAndroid Build Coastguard Worker store i32 %v0, i32 addrspace(1)* %r, align 4 551*9880d681SAndroid Build Coastguard Worker store i32 %v1, i32 addrspace(1)* %gep1, align 4 552*9880d681SAndroid Build Coastguard Worker ret void 553*9880d681SAndroid Build Coastguard Worker} 554*9880d681SAndroid Build Coastguard Worker 555*9880d681SAndroid Build Coastguard Workerattributes #0 = { nounwind } 556