133fc675eSKrzysztof Parzyszek; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 233fc675eSKrzysztof Parzyszek; RUN: llc -march=hexagon < %s | FileCheck %s 333fc675eSKrzysztof Parzyszek 433fc675eSKrzysztof Parzyszekdefine void @f0(<128 x i8>* %a0, <128 x i8>* %a1) #0 { 533fc675eSKrzysztof Parzyszek; CHECK-LABEL: f0: 633fc675eSKrzysztof Parzyszek; CHECK: // %bb.0: 733fc675eSKrzysztof Parzyszek; CHECK-NEXT: { 833fc675eSKrzysztof Parzyszek; CHECK-NEXT: jumpr r31 933fc675eSKrzysztof Parzyszek; CHECK-NEXT: v0.cur = vmem(r0+#1) 1033fc675eSKrzysztof Parzyszek; CHECK-NEXT: vmem(r1+#2) = v0 1133fc675eSKrzysztof Parzyszek; CHECK-NEXT: } 1233fc675eSKrzysztof Parzyszek %v0 = getelementptr <128 x i8>, <128 x i8>* %a0, i32 1 1333fc675eSKrzysztof Parzyszek %v1 = load <128 x i8>, <128 x i8>* %v0, align 128 1433fc675eSKrzysztof Parzyszek %v2 = getelementptr <128 x i8>, <128 x i8>* %a1, i32 2 1533fc675eSKrzysztof Parzyszek store <128 x i8> %v1, <128 x i8>* %v2, align 128 1633fc675eSKrzysztof Parzyszek ret void 1733fc675eSKrzysztof Parzyszek} 1833fc675eSKrzysztof Parzyszek 1933fc675eSKrzysztof Parzyszekdefine void @f1(<64 x i16>* %a0, <64 x i16>* %a1) #0 { 2033fc675eSKrzysztof Parzyszek; CHECK-LABEL: f1: 2133fc675eSKrzysztof Parzyszek; CHECK: // %bb.0: 2233fc675eSKrzysztof Parzyszek; CHECK-NEXT: { 2333fc675eSKrzysztof Parzyszek; CHECK-NEXT: jumpr r31 2433fc675eSKrzysztof Parzyszek; CHECK-NEXT: v0.cur = vmem(r0+#1) 2533fc675eSKrzysztof Parzyszek; CHECK-NEXT: vmem(r1+#2) = v0 2633fc675eSKrzysztof Parzyszek; CHECK-NEXT: } 2733fc675eSKrzysztof Parzyszek %v0 = getelementptr <64 x i16>, <64 x i16>* %a0, i32 1 2833fc675eSKrzysztof Parzyszek %v1 = load <64 x i16>, <64 x i16>* %v0, align 128 2933fc675eSKrzysztof Parzyszek %v2 = getelementptr <64 x i16>, <64 x i16>* %a1, i32 2 3033fc675eSKrzysztof Parzyszek store <64 x i16> %v1, <64 x i16>* %v2, align 128 3133fc675eSKrzysztof Parzyszek ret void 3233fc675eSKrzysztof Parzyszek} 3333fc675eSKrzysztof Parzyszek 3433fc675eSKrzysztof Parzyszekdefine void @f2(<32 x i32>* %a0, <32 x i32>* %a1) #0 { 3533fc675eSKrzysztof Parzyszek; CHECK-LABEL: f2: 3633fc675eSKrzysztof Parzyszek; CHECK: // %bb.0: 3733fc675eSKrzysztof Parzyszek; CHECK-NEXT: { 3833fc675eSKrzysztof Parzyszek; CHECK-NEXT: jumpr r31 3933fc675eSKrzysztof Parzyszek; CHECK-NEXT: v0.cur = vmem(r0+#1) 4033fc675eSKrzysztof Parzyszek; CHECK-NEXT: vmem(r1+#2) = v0 4133fc675eSKrzysztof Parzyszek; CHECK-NEXT: } 4233fc675eSKrzysztof Parzyszek %v0 = getelementptr <32 x i32>, <32 x i32>* %a0, i32 1 4333fc675eSKrzysztof Parzyszek %v1 = load <32 x i32>, <32 x i32>* %v0, align 128 4433fc675eSKrzysztof Parzyszek %v2 = getelementptr <32 x i32>, <32 x i32>* %a1, i32 2 4533fc675eSKrzysztof Parzyszek store <32 x i32> %v1, <32 x i32>* %v2, align 128 4633fc675eSKrzysztof Parzyszek ret void 4733fc675eSKrzysztof Parzyszek} 4833fc675eSKrzysztof Parzyszek 4933fc675eSKrzysztof Parzyszekdefine void @f3(<64 x half>* %a0, <64 x half>* %a1) #0 { 5033fc675eSKrzysztof Parzyszek; CHECK-LABEL: f3: 5133fc675eSKrzysztof Parzyszek; CHECK: // %bb.0: 5233fc675eSKrzysztof Parzyszek; CHECK-NEXT: { 5333fc675eSKrzysztof Parzyszek; CHECK-NEXT: jumpr r31 5433fc675eSKrzysztof Parzyszek; CHECK-NEXT: v0.cur = vmem(r0+#1) 5533fc675eSKrzysztof Parzyszek; CHECK-NEXT: vmem(r1+#2) = v0 5633fc675eSKrzysztof Parzyszek; CHECK-NEXT: } 5733fc675eSKrzysztof Parzyszek %v0 = getelementptr <64 x half>, <64 x half>* %a0, i32 1 5833fc675eSKrzysztof Parzyszek %v1 = load <64 x half>, <64 x half>* %v0, align 128 5933fc675eSKrzysztof Parzyszek %v2 = getelementptr <64 x half>, <64 x half>* %a1, i32 2 6033fc675eSKrzysztof Parzyszek store <64 x half> %v1, <64 x half>* %v2, align 128 6133fc675eSKrzysztof Parzyszek ret void 6233fc675eSKrzysztof Parzyszek} 6333fc675eSKrzysztof Parzyszek 6433fc675eSKrzysztof Parzyszekdefine void @f4(<32 x float>* %a0, <32 x float>* %a1) #0 { 6533fc675eSKrzysztof Parzyszek; CHECK-LABEL: f4: 6633fc675eSKrzysztof Parzyszek; CHECK: // %bb.0: 6733fc675eSKrzysztof Parzyszek; CHECK-NEXT: { 6833fc675eSKrzysztof Parzyszek; CHECK-NEXT: jumpr r31 6933fc675eSKrzysztof Parzyszek; CHECK-NEXT: v0.cur = vmem(r0+#1) 7033fc675eSKrzysztof Parzyszek; CHECK-NEXT: vmem(r1+#2) = v0 7133fc675eSKrzysztof Parzyszek; CHECK-NEXT: } 7233fc675eSKrzysztof Parzyszek %v0 = getelementptr <32 x float>, <32 x float>* %a0, i32 1 7333fc675eSKrzysztof Parzyszek %v1 = load <32 x float>, <32 x float>* %v0, align 128 7433fc675eSKrzysztof Parzyszek %v2 = getelementptr <32 x float>, <32 x float>* %a1, i32 2 7533fc675eSKrzysztof Parzyszek store <32 x float> %v1, <32 x float>* %v2, align 128 7633fc675eSKrzysztof Parzyszek ret void 7733fc675eSKrzysztof Parzyszek} 7833fc675eSKrzysztof Parzyszek 7933fc675eSKrzysztof Parzyszekdefine void @f5(<128 x i8>* %a0, <128 x i8>* %a1) #0 { 8033fc675eSKrzysztof Parzyszek; CHECK-LABEL: f5: 8133fc675eSKrzysztof Parzyszek; CHECK: // %bb.0: 8233fc675eSKrzysztof Parzyszek; CHECK-NEXT: { 8333fc675eSKrzysztof Parzyszek; CHECK-NEXT: v0 = vmemu(r0+#1) 8433fc675eSKrzysztof Parzyszek; CHECK-NEXT: } 8533fc675eSKrzysztof Parzyszek; CHECK-NEXT: { 8633fc675eSKrzysztof Parzyszek; CHECK-NEXT: jumpr r31 8733fc675eSKrzysztof Parzyszek; CHECK-NEXT: vmemu(r1+#2) = v0 8833fc675eSKrzysztof Parzyszek; CHECK-NEXT: } 8933fc675eSKrzysztof Parzyszek %v0 = getelementptr <128 x i8>, <128 x i8>* %a0, i32 1 9033fc675eSKrzysztof Parzyszek %v1 = load <128 x i8>, <128 x i8>* %v0, align 1 9133fc675eSKrzysztof Parzyszek %v2 = getelementptr <128 x i8>, <128 x i8>* %a1, i32 2 9233fc675eSKrzysztof Parzyszek store <128 x i8> %v1, <128 x i8>* %v2, align 1 9333fc675eSKrzysztof Parzyszek ret void 9433fc675eSKrzysztof Parzyszek} 9533fc675eSKrzysztof Parzyszek 9633fc675eSKrzysztof Parzyszekdefine void @f6(<64 x i16>* %a0, <64 x i16>* %a1) #0 { 9733fc675eSKrzysztof Parzyszek; CHECK-LABEL: f6: 9833fc675eSKrzysztof Parzyszek; CHECK: // %bb.0: 9933fc675eSKrzysztof Parzyszek; CHECK-NEXT: { 10033fc675eSKrzysztof Parzyszek; CHECK-NEXT: v0 = vmemu(r0+#1) 10133fc675eSKrzysztof Parzyszek; CHECK-NEXT: } 10233fc675eSKrzysztof Parzyszek; CHECK-NEXT: { 10333fc675eSKrzysztof Parzyszek; CHECK-NEXT: jumpr r31 10433fc675eSKrzysztof Parzyszek; CHECK-NEXT: vmemu(r1+#2) = v0 10533fc675eSKrzysztof Parzyszek; CHECK-NEXT: } 10633fc675eSKrzysztof Parzyszek %v0 = getelementptr <64 x i16>, <64 x i16>* %a0, i32 1 10733fc675eSKrzysztof Parzyszek %v1 = load <64 x i16>, <64 x i16>* %v0, align 1 10833fc675eSKrzysztof Parzyszek %v2 = getelementptr <64 x i16>, <64 x i16>* %a1, i32 2 10933fc675eSKrzysztof Parzyszek store <64 x i16> %v1, <64 x i16>* %v2, align 1 11033fc675eSKrzysztof Parzyszek ret void 11133fc675eSKrzysztof Parzyszek} 11233fc675eSKrzysztof Parzyszek 11333fc675eSKrzysztof Parzyszekdefine void @f7(<32 x i32>* %a0, <32 x i32>* %a1) #0 { 11433fc675eSKrzysztof Parzyszek; CHECK-LABEL: f7: 11533fc675eSKrzysztof Parzyszek; CHECK: // %bb.0: 11633fc675eSKrzysztof Parzyszek; CHECK-NEXT: { 11733fc675eSKrzysztof Parzyszek; CHECK-NEXT: v0 = vmemu(r0+#1) 11833fc675eSKrzysztof Parzyszek; CHECK-NEXT: } 11933fc675eSKrzysztof Parzyszek; CHECK-NEXT: { 12033fc675eSKrzysztof Parzyszek; CHECK-NEXT: jumpr r31 12133fc675eSKrzysztof Parzyszek; CHECK-NEXT: vmemu(r1+#2) = v0 12233fc675eSKrzysztof Parzyszek; CHECK-NEXT: } 12333fc675eSKrzysztof Parzyszek %v0 = getelementptr <32 x i32>, <32 x i32>* %a0, i32 1 12433fc675eSKrzysztof Parzyszek %v1 = load <32 x i32>, <32 x i32>* %v0, align 1 12533fc675eSKrzysztof Parzyszek %v2 = getelementptr <32 x i32>, <32 x i32>* %a1, i32 2 12633fc675eSKrzysztof Parzyszek store <32 x i32> %v1, <32 x i32>* %v2, align 1 12733fc675eSKrzysztof Parzyszek ret void 12833fc675eSKrzysztof Parzyszek} 12933fc675eSKrzysztof Parzyszek 13033fc675eSKrzysztof Parzyszekdefine void @f8(<64 x half>* %a0, <64 x half>* %a1) #0 { 13133fc675eSKrzysztof Parzyszek; CHECK-LABEL: f8: 13233fc675eSKrzysztof Parzyszek; CHECK: // %bb.0: 13333fc675eSKrzysztof Parzyszek; CHECK-NEXT: { 13433fc675eSKrzysztof Parzyszek; CHECK-NEXT: v0 = vmemu(r0+#1) 13533fc675eSKrzysztof Parzyszek; CHECK-NEXT: } 13633fc675eSKrzysztof Parzyszek; CHECK-NEXT: { 13733fc675eSKrzysztof Parzyszek; CHECK-NEXT: jumpr r31 13833fc675eSKrzysztof Parzyszek; CHECK-NEXT: vmemu(r1+#2) = v0 13933fc675eSKrzysztof Parzyszek; CHECK-NEXT: } 14033fc675eSKrzysztof Parzyszek %v0 = getelementptr <64 x half>, <64 x half>* %a0, i32 1 14133fc675eSKrzysztof Parzyszek %v1 = load <64 x half>, <64 x half>* %v0, align 1 14233fc675eSKrzysztof Parzyszek %v2 = getelementptr <64 x half>, <64 x half>* %a1, i32 2 14333fc675eSKrzysztof Parzyszek store <64 x half> %v1, <64 x half>* %v2, align 1 14433fc675eSKrzysztof Parzyszek ret void 14533fc675eSKrzysztof Parzyszek} 14633fc675eSKrzysztof Parzyszek 14733fc675eSKrzysztof Parzyszekdefine void @f9(<32 x float>* %a0, <32 x float>* %a1) #0 { 14833fc675eSKrzysztof Parzyszek; CHECK-LABEL: f9: 14933fc675eSKrzysztof Parzyszek; CHECK: // %bb.0: 15033fc675eSKrzysztof Parzyszek; CHECK-NEXT: { 15133fc675eSKrzysztof Parzyszek; CHECK-NEXT: v0 = vmemu(r0+#1) 15233fc675eSKrzysztof Parzyszek; CHECK-NEXT: } 15333fc675eSKrzysztof Parzyszek; CHECK-NEXT: { 15433fc675eSKrzysztof Parzyszek; CHECK-NEXT: jumpr r31 15533fc675eSKrzysztof Parzyszek; CHECK-NEXT: vmemu(r1+#2) = v0 15633fc675eSKrzysztof Parzyszek; CHECK-NEXT: } 15733fc675eSKrzysztof Parzyszek %v0 = getelementptr <32 x float>, <32 x float>* %a0, i32 1 15833fc675eSKrzysztof Parzyszek %v1 = load <32 x float>, <32 x float>* %v0, align 1 15933fc675eSKrzysztof Parzyszek %v2 = getelementptr <32 x float>, <32 x float>* %a1, i32 2 16033fc675eSKrzysztof Parzyszek store <32 x float> %v1, <32 x float>* %v2, align 1 16133fc675eSKrzysztof Parzyszek ret void 16233fc675eSKrzysztof Parzyszek} 16333fc675eSKrzysztof Parzyszek 164*0792161cSKrzysztof Parzyszekdefine void @f10(<256 x i8>* %a0, <256 x i8>* %a1) #0 { 165*0792161cSKrzysztof Parzyszek; CHECK-LABEL: f10: 166*0792161cSKrzysztof Parzyszek; CHECK: // %bb.0: 167*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 168*0792161cSKrzysztof Parzyszek; CHECK-NEXT: v0 = vmem(r0+#2) 169*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 170*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 171*0792161cSKrzysztof Parzyszek; CHECK-NEXT: v1.cur = vmem(r0+#3) 172*0792161cSKrzysztof Parzyszek; CHECK-NEXT: vmem(r1+#5) = v1 173*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 174*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 175*0792161cSKrzysztof Parzyszek; CHECK-NEXT: jumpr r31 176*0792161cSKrzysztof Parzyszek; CHECK-NEXT: vmem(r1+#4) = v0 177*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 178*0792161cSKrzysztof Parzyszek %v0 = getelementptr <256 x i8>, <256 x i8>* %a0, i32 1 179*0792161cSKrzysztof Parzyszek %v1 = load <256 x i8>, <256 x i8>* %v0, align 128 180*0792161cSKrzysztof Parzyszek %v2 = getelementptr <256 x i8>, <256 x i8>* %a1, i32 2 181*0792161cSKrzysztof Parzyszek store <256 x i8> %v1, <256 x i8>* %v2, align 128 182*0792161cSKrzysztof Parzyszek ret void 183*0792161cSKrzysztof Parzyszek} 184*0792161cSKrzysztof Parzyszek 185*0792161cSKrzysztof Parzyszekdefine void @f11(<128 x i16>* %a0, <128 x i16>* %a1) #0 { 186*0792161cSKrzysztof Parzyszek; CHECK-LABEL: f11: 187*0792161cSKrzysztof Parzyszek; CHECK: // %bb.0: 188*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 189*0792161cSKrzysztof Parzyszek; CHECK-NEXT: v0 = vmem(r0+#2) 190*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 191*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 192*0792161cSKrzysztof Parzyszek; CHECK-NEXT: v1.cur = vmem(r0+#3) 193*0792161cSKrzysztof Parzyszek; CHECK-NEXT: vmem(r1+#5) = v1 194*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 195*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 196*0792161cSKrzysztof Parzyszek; CHECK-NEXT: jumpr r31 197*0792161cSKrzysztof Parzyszek; CHECK-NEXT: vmem(r1+#4) = v0 198*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 199*0792161cSKrzysztof Parzyszek %v0 = getelementptr <128 x i16>, <128 x i16>* %a0, i32 1 200*0792161cSKrzysztof Parzyszek %v1 = load <128 x i16>, <128 x i16>* %v0, align 128 201*0792161cSKrzysztof Parzyszek %v2 = getelementptr <128 x i16>, <128 x i16>* %a1, i32 2 202*0792161cSKrzysztof Parzyszek store <128 x i16> %v1, <128 x i16>* %v2, align 128 203*0792161cSKrzysztof Parzyszek ret void 204*0792161cSKrzysztof Parzyszek} 205*0792161cSKrzysztof Parzyszek 206*0792161cSKrzysztof Parzyszekdefine void @f12(<64 x i32>* %a0, <64 x i32>* %a1) #0 { 207*0792161cSKrzysztof Parzyszek; CHECK-LABEL: f12: 208*0792161cSKrzysztof Parzyszek; CHECK: // %bb.0: 209*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 210*0792161cSKrzysztof Parzyszek; CHECK-NEXT: v0 = vmem(r0+#2) 211*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 212*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 213*0792161cSKrzysztof Parzyszek; CHECK-NEXT: v1.cur = vmem(r0+#3) 214*0792161cSKrzysztof Parzyszek; CHECK-NEXT: vmem(r1+#5) = v1 215*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 216*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 217*0792161cSKrzysztof Parzyszek; CHECK-NEXT: jumpr r31 218*0792161cSKrzysztof Parzyszek; CHECK-NEXT: vmem(r1+#4) = v0 219*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 220*0792161cSKrzysztof Parzyszek %v0 = getelementptr <64 x i32>, <64 x i32>* %a0, i32 1 221*0792161cSKrzysztof Parzyszek %v1 = load <64 x i32>, <64 x i32>* %v0, align 128 222*0792161cSKrzysztof Parzyszek %v2 = getelementptr <64 x i32>, <64 x i32>* %a1, i32 2 223*0792161cSKrzysztof Parzyszek store <64 x i32> %v1, <64 x i32>* %v2, align 128 224*0792161cSKrzysztof Parzyszek ret void 225*0792161cSKrzysztof Parzyszek} 226*0792161cSKrzysztof Parzyszek 227*0792161cSKrzysztof Parzyszekdefine void @f13(<128 x half>* %a0, <128 x half>* %a1) #0 { 228*0792161cSKrzysztof Parzyszek; CHECK-LABEL: f13: 229*0792161cSKrzysztof Parzyszek; CHECK: // %bb.0: 230*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 231*0792161cSKrzysztof Parzyszek; CHECK-NEXT: v0 = vmem(r0+#2) 232*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 233*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 234*0792161cSKrzysztof Parzyszek; CHECK-NEXT: v1.cur = vmem(r0+#3) 235*0792161cSKrzysztof Parzyszek; CHECK-NEXT: vmem(r1+#5) = v1 236*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 237*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 238*0792161cSKrzysztof Parzyszek; CHECK-NEXT: jumpr r31 239*0792161cSKrzysztof Parzyszek; CHECK-NEXT: vmem(r1+#4) = v0 240*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 241*0792161cSKrzysztof Parzyszek %v0 = getelementptr <128 x half>, <128 x half>* %a0, i32 1 242*0792161cSKrzysztof Parzyszek %v1 = load <128 x half>, <128 x half>* %v0, align 128 243*0792161cSKrzysztof Parzyszek %v2 = getelementptr <128 x half>, <128 x half>* %a1, i32 2 244*0792161cSKrzysztof Parzyszek store <128 x half> %v1, <128 x half>* %v2, align 128 245*0792161cSKrzysztof Parzyszek ret void 246*0792161cSKrzysztof Parzyszek} 247*0792161cSKrzysztof Parzyszek 248*0792161cSKrzysztof Parzyszekdefine void @f14(<64 x float>* %a0, <64 x float>* %a1) #0 { 249*0792161cSKrzysztof Parzyszek; CHECK-LABEL: f14: 250*0792161cSKrzysztof Parzyszek; CHECK: // %bb.0: 251*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 252*0792161cSKrzysztof Parzyszek; CHECK-NEXT: v0 = vmem(r0+#2) 253*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 254*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 255*0792161cSKrzysztof Parzyszek; CHECK-NEXT: v1.cur = vmem(r0+#3) 256*0792161cSKrzysztof Parzyszek; CHECK-NEXT: vmem(r1+#5) = v1 257*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 258*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 259*0792161cSKrzysztof Parzyszek; CHECK-NEXT: jumpr r31 260*0792161cSKrzysztof Parzyszek; CHECK-NEXT: vmem(r1+#4) = v0 261*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 262*0792161cSKrzysztof Parzyszek %v0 = getelementptr <64 x float>, <64 x float>* %a0, i32 1 263*0792161cSKrzysztof Parzyszek %v1 = load <64 x float>, <64 x float>* %v0, align 128 264*0792161cSKrzysztof Parzyszek %v2 = getelementptr <64 x float>, <64 x float>* %a1, i32 2 265*0792161cSKrzysztof Parzyszek store <64 x float> %v1, <64 x float>* %v2, align 128 266*0792161cSKrzysztof Parzyszek ret void 267*0792161cSKrzysztof Parzyszek} 268*0792161cSKrzysztof Parzyszek 269*0792161cSKrzysztof Parzyszekdefine void @f15(<256 x i8>* %a0, <256 x i8>* %a1) #0 { 270*0792161cSKrzysztof Parzyszek; CHECK-LABEL: f15: 271*0792161cSKrzysztof Parzyszek; CHECK: // %bb.0: 272*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 273*0792161cSKrzysztof Parzyszek; CHECK-NEXT: v0 = vmemu(r0+#3) 274*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 275*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 276*0792161cSKrzysztof Parzyszek; CHECK-NEXT: v1 = vmemu(r0+#2) 277*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 278*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 279*0792161cSKrzysztof Parzyszek; CHECK-NEXT: vmemu(r1+#5) = v0 280*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 281*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 282*0792161cSKrzysztof Parzyszek; CHECK-NEXT: jumpr r31 283*0792161cSKrzysztof Parzyszek; CHECK-NEXT: vmemu(r1+#4) = v1 284*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 285*0792161cSKrzysztof Parzyszek %v0 = getelementptr <256 x i8>, <256 x i8>* %a0, i32 1 286*0792161cSKrzysztof Parzyszek %v1 = load <256 x i8>, <256 x i8>* %v0, align 1 287*0792161cSKrzysztof Parzyszek %v2 = getelementptr <256 x i8>, <256 x i8>* %a1, i32 2 288*0792161cSKrzysztof Parzyszek store <256 x i8> %v1, <256 x i8>* %v2, align 1 289*0792161cSKrzysztof Parzyszek ret void 290*0792161cSKrzysztof Parzyszek} 291*0792161cSKrzysztof Parzyszek 292*0792161cSKrzysztof Parzyszekdefine void @f16(<128 x i16>* %a0, <128 x i16>* %a1) #0 { 293*0792161cSKrzysztof Parzyszek; CHECK-LABEL: f16: 294*0792161cSKrzysztof Parzyszek; CHECK: // %bb.0: 295*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 296*0792161cSKrzysztof Parzyszek; CHECK-NEXT: v0 = vmemu(r0+#3) 297*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 298*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 299*0792161cSKrzysztof Parzyszek; CHECK-NEXT: v1 = vmemu(r0+#2) 300*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 301*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 302*0792161cSKrzysztof Parzyszek; CHECK-NEXT: vmemu(r1+#5) = v0 303*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 304*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 305*0792161cSKrzysztof Parzyszek; CHECK-NEXT: jumpr r31 306*0792161cSKrzysztof Parzyszek; CHECK-NEXT: vmemu(r1+#4) = v1 307*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 308*0792161cSKrzysztof Parzyszek %v0 = getelementptr <128 x i16>, <128 x i16>* %a0, i32 1 309*0792161cSKrzysztof Parzyszek %v1 = load <128 x i16>, <128 x i16>* %v0, align 1 310*0792161cSKrzysztof Parzyszek %v2 = getelementptr <128 x i16>, <128 x i16>* %a1, i32 2 311*0792161cSKrzysztof Parzyszek store <128 x i16> %v1, <128 x i16>* %v2, align 1 312*0792161cSKrzysztof Parzyszek ret void 313*0792161cSKrzysztof Parzyszek} 314*0792161cSKrzysztof Parzyszek 315*0792161cSKrzysztof Parzyszekdefine void @f17(<64 x i32>* %a0, <64 x i32>* %a1) #0 { 316*0792161cSKrzysztof Parzyszek; CHECK-LABEL: f17: 317*0792161cSKrzysztof Parzyszek; CHECK: // %bb.0: 318*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 319*0792161cSKrzysztof Parzyszek; CHECK-NEXT: v0 = vmemu(r0+#3) 320*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 321*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 322*0792161cSKrzysztof Parzyszek; CHECK-NEXT: v1 = vmemu(r0+#2) 323*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 324*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 325*0792161cSKrzysztof Parzyszek; CHECK-NEXT: vmemu(r1+#5) = v0 326*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 327*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 328*0792161cSKrzysztof Parzyszek; CHECK-NEXT: jumpr r31 329*0792161cSKrzysztof Parzyszek; CHECK-NEXT: vmemu(r1+#4) = v1 330*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 331*0792161cSKrzysztof Parzyszek %v0 = getelementptr <64 x i32>, <64 x i32>* %a0, i32 1 332*0792161cSKrzysztof Parzyszek %v1 = load <64 x i32>, <64 x i32>* %v0, align 1 333*0792161cSKrzysztof Parzyszek %v2 = getelementptr <64 x i32>, <64 x i32>* %a1, i32 2 334*0792161cSKrzysztof Parzyszek store <64 x i32> %v1, <64 x i32>* %v2, align 1 335*0792161cSKrzysztof Parzyszek ret void 336*0792161cSKrzysztof Parzyszek} 337*0792161cSKrzysztof Parzyszek 338*0792161cSKrzysztof Parzyszekdefine void @f18(<128 x half>* %a0, <128 x half>* %a1) #0 { 339*0792161cSKrzysztof Parzyszek; CHECK-LABEL: f18: 340*0792161cSKrzysztof Parzyszek; CHECK: // %bb.0: 341*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 342*0792161cSKrzysztof Parzyszek; CHECK-NEXT: v0 = vmemu(r0+#3) 343*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 344*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 345*0792161cSKrzysztof Parzyszek; CHECK-NEXT: v1 = vmemu(r0+#2) 346*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 347*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 348*0792161cSKrzysztof Parzyszek; CHECK-NEXT: vmemu(r1+#5) = v0 349*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 350*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 351*0792161cSKrzysztof Parzyszek; CHECK-NEXT: jumpr r31 352*0792161cSKrzysztof Parzyszek; CHECK-NEXT: vmemu(r1+#4) = v1 353*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 354*0792161cSKrzysztof Parzyszek %v0 = getelementptr <128 x half>, <128 x half>* %a0, i32 1 355*0792161cSKrzysztof Parzyszek %v1 = load <128 x half>, <128 x half>* %v0, align 1 356*0792161cSKrzysztof Parzyszek %v2 = getelementptr <128 x half>, <128 x half>* %a1, i32 2 357*0792161cSKrzysztof Parzyszek store <128 x half> %v1, <128 x half>* %v2, align 1 358*0792161cSKrzysztof Parzyszek ret void 359*0792161cSKrzysztof Parzyszek} 360*0792161cSKrzysztof Parzyszek 361*0792161cSKrzysztof Parzyszekdefine void @f19(<64 x float>* %a0, <64 x float>* %a1) #0 { 362*0792161cSKrzysztof Parzyszek; CHECK-LABEL: f19: 363*0792161cSKrzysztof Parzyszek; CHECK: // %bb.0: 364*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 365*0792161cSKrzysztof Parzyszek; CHECK-NEXT: v0 = vmemu(r0+#3) 366*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 367*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 368*0792161cSKrzysztof Parzyszek; CHECK-NEXT: v1 = vmemu(r0+#2) 369*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 370*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 371*0792161cSKrzysztof Parzyszek; CHECK-NEXT: vmemu(r1+#5) = v0 372*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 373*0792161cSKrzysztof Parzyszek; CHECK-NEXT: { 374*0792161cSKrzysztof Parzyszek; CHECK-NEXT: jumpr r31 375*0792161cSKrzysztof Parzyszek; CHECK-NEXT: vmemu(r1+#4) = v1 376*0792161cSKrzysztof Parzyszek; CHECK-NEXT: } 377*0792161cSKrzysztof Parzyszek %v0 = getelementptr <64 x float>, <64 x float>* %a0, i32 1 378*0792161cSKrzysztof Parzyszek %v1 = load <64 x float>, <64 x float>* %v0, align 1 379*0792161cSKrzysztof Parzyszek %v2 = getelementptr <64 x float>, <64 x float>* %a1, i32 2 380*0792161cSKrzysztof Parzyszek store <64 x float> %v1, <64 x float>* %v2, align 1 381*0792161cSKrzysztof Parzyszek ret void 382*0792161cSKrzysztof Parzyszek} 383*0792161cSKrzysztof Parzyszek 384*0792161cSKrzysztof Parzyszek 38533fc675eSKrzysztof Parzyszekattributes #0 = { nounwind "target-cpu"="hexagonv69" "target-features"="+hvxv69,+hvx-length128b,+hvx-qfloat" } 386