1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc -march=hexagon < %s | FileCheck %s 3 4define void @f0(<128 x i8> %a0, <128 x i8>* %a1) #0 { 5; CHECK-LABEL: f0: 6; CHECK: // %bb.0: // %b0 7; CHECK-NEXT: { 8; CHECK-NEXT: jumpr r31 9; CHECK-NEXT: vmem(r0+#0) = v0 10; CHECK-NEXT: } 11b0: 12 %v0 = getelementptr <128 x i8>, <128 x i8>* %a1, i32 0 13 store <128 x i8> %a0, <128 x i8>* %v0, align 128 14 ret void 15} 16 17define void @f1(<128 x i8> %a0, <128 x i8> %a1, <128 x i8>* %a2) #0 { 18; CHECK-LABEL: f1: 19; CHECK: // %bb.0: // %b0 20; CHECK-NEXT: { 21; CHECK-NEXT: vmem(r0+#0) = v0 22; CHECK-NEXT: } 23; CHECK-NEXT: { 24; CHECK-NEXT: jumpr r31 25; CHECK-NEXT: vmem(r0+#1) = v1 26; CHECK-NEXT: } 27b0: 28 %v0 = getelementptr <128 x i8>, <128 x i8>* %a2, i32 0 29 store <128 x i8> %a0, <128 x i8>* %v0, align 128 30 %v1 = getelementptr <128 x i8>, <128 x i8>* %a2, i32 1 31 store <128 x i8> %a1, <128 x i8>* %v1, align 128 32 ret void 33} 34 35define void @f2(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8>* %a3) #0 { 36; CHECK-LABEL: f2: 37; CHECK: // %bb.0: // %b0 38; CHECK-NEXT: { 39; CHECK-NEXT: vmem(r0+#0) = v0 40; CHECK-NEXT: } 41; CHECK-NEXT: { 42; CHECK-NEXT: vmem(r0+#1) = v1 43; CHECK-NEXT: } 44; CHECK-NEXT: { 45; CHECK-NEXT: jumpr r31 46; CHECK-NEXT: vmem(r0+#2) = v2 47; CHECK-NEXT: } 48b0: 49 %v0 = getelementptr <128 x i8>, <128 x i8>* %a3, i32 0 50 store <128 x i8> %a0, <128 x i8>* %v0, align 128 51 %v1 = getelementptr <128 x i8>, <128 x i8>* %a3, i32 1 52 store <128 x i8> %a1, <128 x i8>* %v1, align 128 53 %v2 = getelementptr <128 x i8>, <128 x i8>* %a3, i32 2 54 store <128 x i8> %a2, <128 x i8>* %v2, align 128 55 ret void 56} 57 58define void @f3(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, <128 x i8>* %a4) #0 { 59; CHECK-LABEL: f3: 60; CHECK: // %bb.0: // %b0 61; CHECK-NEXT: { 62; CHECK-NEXT: vmem(r0+#0) = v0 63; CHECK-NEXT: } 64; CHECK-NEXT: { 65; CHECK-NEXT: vmem(r0+#1) = v1 66; CHECK-NEXT: } 67; CHECK-NEXT: { 68; CHECK-NEXT: vmem(r0+#2) = v2 69; CHECK-NEXT: } 70; CHECK-NEXT: { 71; CHECK-NEXT: jumpr r31 72; CHECK-NEXT: vmem(r0+#3) = v3 73; CHECK-NEXT: } 74b0: 75 %v0 = getelementptr <128 x i8>, <128 x i8>* %a4, i32 0 76 store <128 x i8> %a0, <128 x i8>* %v0, align 128 77 %v1 = getelementptr <128 x i8>, <128 x i8>* %a4, i32 1 78 store <128 x i8> %a1, <128 x i8>* %v1, align 128 79 %v2 = getelementptr <128 x i8>, <128 x i8>* %a4, i32 2 80 store <128 x i8> %a2, <128 x i8>* %v2, align 128 81 %v3 = getelementptr <128 x i8>, <128 x i8>* %a4, i32 3 82 store <128 x i8> %a3, <128 x i8>* %v3, align 128 83 ret void 84} 85 86define void @f4(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, <128 x i8> %a4, <128 x i8>* %a5) #0 { 87; CHECK-LABEL: f4: 88; CHECK: // %bb.0: // %b0 89; CHECK-NEXT: { 90; CHECK-NEXT: vmem(r0+#0) = v0 91; CHECK-NEXT: } 92; CHECK-NEXT: { 93; CHECK-NEXT: vmem(r0+#1) = v1 94; CHECK-NEXT: } 95; CHECK-NEXT: { 96; CHECK-NEXT: vmem(r0+#2) = v2 97; CHECK-NEXT: } 98; CHECK-NEXT: { 99; CHECK-NEXT: vmem(r0+#3) = v3 100; CHECK-NEXT: } 101; CHECK-NEXT: { 102; CHECK-NEXT: jumpr r31 103; CHECK-NEXT: vmem(r0+#4) = v4 104; CHECK-NEXT: } 105b0: 106 %v0 = getelementptr <128 x i8>, <128 x i8>* %a5, i32 0 107 store <128 x i8> %a0, <128 x i8>* %v0, align 128 108 %v1 = getelementptr <128 x i8>, <128 x i8>* %a5, i32 1 109 store <128 x i8> %a1, <128 x i8>* %v1, align 128 110 %v2 = getelementptr <128 x i8>, <128 x i8>* %a5, i32 2 111 store <128 x i8> %a2, <128 x i8>* %v2, align 128 112 %v3 = getelementptr <128 x i8>, <128 x i8>* %a5, i32 3 113 store <128 x i8> %a3, <128 x i8>* %v3, align 128 114 %v4 = getelementptr <128 x i8>, <128 x i8>* %a5, i32 4 115 store <128 x i8> %a4, <128 x i8>* %v4, align 128 116 ret void 117} 118 119define void @f5(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, <128 x i8> %a4, <128 x i8> %a5, <128 x i8>* %a6) #0 { 120; CHECK-LABEL: f5: 121; CHECK: // %bb.0: // %b0 122; CHECK-NEXT: { 123; CHECK-NEXT: vmem(r0+#0) = v0 124; CHECK-NEXT: } 125; CHECK-NEXT: { 126; CHECK-NEXT: vmem(r0+#1) = v1 127; CHECK-NEXT: } 128; CHECK-NEXT: { 129; CHECK-NEXT: vmem(r0+#2) = v2 130; CHECK-NEXT: } 131; CHECK-NEXT: { 132; CHECK-NEXT: vmem(r0+#3) = v3 133; CHECK-NEXT: } 134; CHECK-NEXT: { 135; CHECK-NEXT: vmem(r0+#4) = v4 136; CHECK-NEXT: } 137; CHECK-NEXT: { 138; CHECK-NEXT: jumpr r31 139; CHECK-NEXT: vmem(r0+#5) = v5 140; CHECK-NEXT: } 141b0: 142 %v0 = getelementptr <128 x i8>, <128 x i8>* %a6, i32 0 143 store <128 x i8> %a0, <128 x i8>* %v0, align 128 144 %v1 = getelementptr <128 x i8>, <128 x i8>* %a6, i32 1 145 store <128 x i8> %a1, <128 x i8>* %v1, align 128 146 %v2 = getelementptr <128 x i8>, <128 x i8>* %a6, i32 2 147 store <128 x i8> %a2, <128 x i8>* %v2, align 128 148 %v3 = getelementptr <128 x i8>, <128 x i8>* %a6, i32 3 149 store <128 x i8> %a3, <128 x i8>* %v3, align 128 150 %v4 = getelementptr <128 x i8>, <128 x i8>* %a6, i32 4 151 store <128 x i8> %a4, <128 x i8>* %v4, align 128 152 %v5 = getelementptr <128 x i8>, <128 x i8>* %a6, i32 5 153 store <128 x i8> %a5, <128 x i8>* %v5, align 128 154 ret void 155} 156 157define void @f6(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, <128 x i8> %a4, <128 x i8> %a5, <128 x i8> %a6, <128 x i8>* %a7) #0 { 158; CHECK-LABEL: f6: 159; CHECK: // %bb.0: // %b0 160; CHECK-NEXT: { 161; CHECK-NEXT: vmem(r0+#0) = v0 162; CHECK-NEXT: } 163; CHECK-NEXT: { 164; CHECK-NEXT: vmem(r0+#1) = v1 165; CHECK-NEXT: } 166; CHECK-NEXT: { 167; CHECK-NEXT: vmem(r0+#2) = v2 168; CHECK-NEXT: } 169; CHECK-NEXT: { 170; CHECK-NEXT: vmem(r0+#3) = v3 171; CHECK-NEXT: } 172; CHECK-NEXT: { 173; CHECK-NEXT: vmem(r0+#4) = v4 174; CHECK-NEXT: } 175; CHECK-NEXT: { 176; CHECK-NEXT: vmem(r0+#5) = v5 177; CHECK-NEXT: } 178; CHECK-NEXT: { 179; CHECK-NEXT: jumpr r31 180; CHECK-NEXT: vmem(r0+#6) = v6 181; CHECK-NEXT: } 182b0: 183 %v0 = getelementptr <128 x i8>, <128 x i8>* %a7, i32 0 184 store <128 x i8> %a0, <128 x i8>* %v0, align 128 185 %v1 = getelementptr <128 x i8>, <128 x i8>* %a7, i32 1 186 store <128 x i8> %a1, <128 x i8>* %v1, align 128 187 %v2 = getelementptr <128 x i8>, <128 x i8>* %a7, i32 2 188 store <128 x i8> %a2, <128 x i8>* %v2, align 128 189 %v3 = getelementptr <128 x i8>, <128 x i8>* %a7, i32 3 190 store <128 x i8> %a3, <128 x i8>* %v3, align 128 191 %v4 = getelementptr <128 x i8>, <128 x i8>* %a7, i32 4 192 store <128 x i8> %a4, <128 x i8>* %v4, align 128 193 %v5 = getelementptr <128 x i8>, <128 x i8>* %a7, i32 5 194 store <128 x i8> %a5, <128 x i8>* %v5, align 128 195 %v6 = getelementptr <128 x i8>, <128 x i8>* %a7, i32 6 196 store <128 x i8> %a6, <128 x i8>* %v6, align 128 197 ret void 198} 199 200define void @f7(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, <128 x i8> %a4, <128 x i8> %a5, <128 x i8> %a6, <128 x i8> %a7, <128 x i8>* %a8) #0 { 201; CHECK-LABEL: f7: 202; CHECK: // %bb.0: // %b0 203; CHECK-NEXT: { 204; CHECK-NEXT: vmem(r0+#0) = v0 205; CHECK-NEXT: } 206; CHECK-NEXT: { 207; CHECK-NEXT: vmem(r0+#1) = v1 208; CHECK-NEXT: } 209; CHECK-NEXT: { 210; CHECK-NEXT: vmem(r0+#2) = v2 211; CHECK-NEXT: } 212; CHECK-NEXT: { 213; CHECK-NEXT: vmem(r0+#3) = v3 214; CHECK-NEXT: } 215; CHECK-NEXT: { 216; CHECK-NEXT: vmem(r0+#4) = v4 217; CHECK-NEXT: } 218; CHECK-NEXT: { 219; CHECK-NEXT: vmem(r0+#5) = v5 220; CHECK-NEXT: } 221; CHECK-NEXT: { 222; CHECK-NEXT: vmem(r0+#6) = v6 223; CHECK-NEXT: } 224; CHECK-NEXT: { 225; CHECK-NEXT: jumpr r31 226; CHECK-NEXT: vmem(r0+#7) = v7 227; CHECK-NEXT: } 228b0: 229 %v0 = getelementptr <128 x i8>, <128 x i8>* %a8, i32 0 230 store <128 x i8> %a0, <128 x i8>* %v0, align 128 231 %v1 = getelementptr <128 x i8>, <128 x i8>* %a8, i32 1 232 store <128 x i8> %a1, <128 x i8>* %v1, align 128 233 %v2 = getelementptr <128 x i8>, <128 x i8>* %a8, i32 2 234 store <128 x i8> %a2, <128 x i8>* %v2, align 128 235 %v3 = getelementptr <128 x i8>, <128 x i8>* %a8, i32 3 236 store <128 x i8> %a3, <128 x i8>* %v3, align 128 237 %v4 = getelementptr <128 x i8>, <128 x i8>* %a8, i32 4 238 store <128 x i8> %a4, <128 x i8>* %v4, align 128 239 %v5 = getelementptr <128 x i8>, <128 x i8>* %a8, i32 5 240 store <128 x i8> %a5, <128 x i8>* %v5, align 128 241 %v6 = getelementptr <128 x i8>, <128 x i8>* %a8, i32 6 242 store <128 x i8> %a6, <128 x i8>* %v6, align 128 243 %v7 = getelementptr <128 x i8>, <128 x i8>* %a8, i32 7 244 store <128 x i8> %a7, <128 x i8>* %v7, align 128 245 ret void 246} 247 248define void @f8(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, <128 x i8> %a4, <128 x i8> %a5, <128 x i8> %a6, <128 x i8> %a7, <128 x i8> %a8, <128 x i8>* %a9) #0 { 249; CHECK-LABEL: f8: 250; CHECK: // %bb.0: // %b0 251; CHECK-NEXT: { 252; CHECK-NEXT: r1 = add(r0,#1024) 253; CHECK-NEXT: vmem(r0+#0) = v0 254; CHECK-NEXT: } 255; CHECK-NEXT: { 256; CHECK-NEXT: vmem(r0+#1) = v1 257; CHECK-NEXT: } 258; CHECK-NEXT: { 259; CHECK-NEXT: vmem(r0+#2) = v2 260; CHECK-NEXT: } 261; CHECK-NEXT: { 262; CHECK-NEXT: vmem(r0+#3) = v3 263; CHECK-NEXT: } 264; CHECK-NEXT: { 265; CHECK-NEXT: vmem(r0+#4) = v4 266; CHECK-NEXT: } 267; CHECK-NEXT: { 268; CHECK-NEXT: vmem(r0+#5) = v5 269; CHECK-NEXT: } 270; CHECK-NEXT: { 271; CHECK-NEXT: vmem(r0+#6) = v6 272; CHECK-NEXT: } 273; CHECK-NEXT: { 274; CHECK-NEXT: vmem(r0+#7) = v7 275; CHECK-NEXT: } 276; CHECK-NEXT: { 277; CHECK-NEXT: jumpr r31 278; CHECK-NEXT: vmem(r1+#0) = v8 279; CHECK-NEXT: } 280b0: 281 %v0 = getelementptr <128 x i8>, <128 x i8>* %a9, i32 0 282 store <128 x i8> %a0, <128 x i8>* %v0, align 128 283 %v1 = getelementptr <128 x i8>, <128 x i8>* %a9, i32 1 284 store <128 x i8> %a1, <128 x i8>* %v1, align 128 285 %v2 = getelementptr <128 x i8>, <128 x i8>* %a9, i32 2 286 store <128 x i8> %a2, <128 x i8>* %v2, align 128 287 %v3 = getelementptr <128 x i8>, <128 x i8>* %a9, i32 3 288 store <128 x i8> %a3, <128 x i8>* %v3, align 128 289 %v4 = getelementptr <128 x i8>, <128 x i8>* %a9, i32 4 290 store <128 x i8> %a4, <128 x i8>* %v4, align 128 291 %v5 = getelementptr <128 x i8>, <128 x i8>* %a9, i32 5 292 store <128 x i8> %a5, <128 x i8>* %v5, align 128 293 %v6 = getelementptr <128 x i8>, <128 x i8>* %a9, i32 6 294 store <128 x i8> %a6, <128 x i8>* %v6, align 128 295 %v7 = getelementptr <128 x i8>, <128 x i8>* %a9, i32 7 296 store <128 x i8> %a7, <128 x i8>* %v7, align 128 297 %v8 = getelementptr <128 x i8>, <128 x i8>* %a9, i32 8 298 store <128 x i8> %a8, <128 x i8>* %v8, align 128 299 ret void 300} 301 302define void @f9(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, <128 x i8> %a4, <128 x i8> %a5, <128 x i8> %a6, <128 x i8> %a7, <128 x i8> %a8, <128 x i8> %a9, <128 x i8>* %a10) #0 { 303; CHECK-LABEL: f9: 304; CHECK: // %bb.0: // %b0 305; CHECK-NEXT: { 306; CHECK-NEXT: r1 = add(r0,#1024) 307; CHECK-NEXT: r2 = add(r0,#1152) 308; CHECK-NEXT: vmem(r0+#0) = v0 309; CHECK-NEXT: } 310; CHECK-NEXT: { 311; CHECK-NEXT: vmem(r0+#1) = v1 312; CHECK-NEXT: } 313; CHECK-NEXT: { 314; CHECK-NEXT: vmem(r0+#2) = v2 315; CHECK-NEXT: } 316; CHECK-NEXT: { 317; CHECK-NEXT: vmem(r0+#3) = v3 318; CHECK-NEXT: } 319; CHECK-NEXT: { 320; CHECK-NEXT: vmem(r0+#4) = v4 321; CHECK-NEXT: } 322; CHECK-NEXT: { 323; CHECK-NEXT: vmem(r0+#5) = v5 324; CHECK-NEXT: } 325; CHECK-NEXT: { 326; CHECK-NEXT: vmem(r0+#6) = v6 327; CHECK-NEXT: } 328; CHECK-NEXT: { 329; CHECK-NEXT: vmem(r0+#7) = v7 330; CHECK-NEXT: } 331; CHECK-NEXT: { 332; CHECK-NEXT: vmem(r1+#0) = v8 333; CHECK-NEXT: } 334; CHECK-NEXT: { 335; CHECK-NEXT: jumpr r31 336; CHECK-NEXT: vmem(r2+#0) = v9 337; CHECK-NEXT: } 338b0: 339 %v0 = getelementptr <128 x i8>, <128 x i8>* %a10, i32 0 340 store <128 x i8> %a0, <128 x i8>* %v0, align 128 341 %v1 = getelementptr <128 x i8>, <128 x i8>* %a10, i32 1 342 store <128 x i8> %a1, <128 x i8>* %v1, align 128 343 %v2 = getelementptr <128 x i8>, <128 x i8>* %a10, i32 2 344 store <128 x i8> %a2, <128 x i8>* %v2, align 128 345 %v3 = getelementptr <128 x i8>, <128 x i8>* %a10, i32 3 346 store <128 x i8> %a3, <128 x i8>* %v3, align 128 347 %v4 = getelementptr <128 x i8>, <128 x i8>* %a10, i32 4 348 store <128 x i8> %a4, <128 x i8>* %v4, align 128 349 %v5 = getelementptr <128 x i8>, <128 x i8>* %a10, i32 5 350 store <128 x i8> %a5, <128 x i8>* %v5, align 128 351 %v6 = getelementptr <128 x i8>, <128 x i8>* %a10, i32 6 352 store <128 x i8> %a6, <128 x i8>* %v6, align 128 353 %v7 = getelementptr <128 x i8>, <128 x i8>* %a10, i32 7 354 store <128 x i8> %a7, <128 x i8>* %v7, align 128 355 %v8 = getelementptr <128 x i8>, <128 x i8>* %a10, i32 8 356 store <128 x i8> %a8, <128 x i8>* %v8, align 128 357 %v9 = getelementptr <128 x i8>, <128 x i8>* %a10, i32 9 358 store <128 x i8> %a9, <128 x i8>* %v9, align 128 359 ret void 360} 361 362define void @f10(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, <128 x i8> %a4, <128 x i8> %a5, <128 x i8> %a6, <128 x i8> %a7, <128 x i8> %a8, <128 x i8> %a9, <128 x i8> %a10, <128 x i8>* %a11) #0 { 363; CHECK-LABEL: f10: 364; CHECK: // %bb.0: // %b0 365; CHECK-NEXT: { 366; CHECK-NEXT: r1 = add(r0,#1024) 367; CHECK-NEXT: r2 = add(r0,#1152) 368; CHECK-NEXT: r3 = add(r0,#1280) 369; CHECK-NEXT: vmem(r0+#0) = v0 370; CHECK-NEXT: } 371; CHECK-NEXT: { 372; CHECK-NEXT: vmem(r0+#1) = v1 373; CHECK-NEXT: } 374; CHECK-NEXT: { 375; CHECK-NEXT: vmem(r0+#2) = v2 376; CHECK-NEXT: } 377; CHECK-NEXT: { 378; CHECK-NEXT: vmem(r0+#3) = v3 379; CHECK-NEXT: } 380; CHECK-NEXT: { 381; CHECK-NEXT: vmem(r0+#4) = v4 382; CHECK-NEXT: } 383; CHECK-NEXT: { 384; CHECK-NEXT: vmem(r0+#5) = v5 385; CHECK-NEXT: } 386; CHECK-NEXT: { 387; CHECK-NEXT: vmem(r0+#6) = v6 388; CHECK-NEXT: } 389; CHECK-NEXT: { 390; CHECK-NEXT: vmem(r0+#7) = v7 391; CHECK-NEXT: } 392; CHECK-NEXT: { 393; CHECK-NEXT: vmem(r1+#0) = v8 394; CHECK-NEXT: } 395; CHECK-NEXT: { 396; CHECK-NEXT: vmem(r2+#0) = v9 397; CHECK-NEXT: } 398; CHECK-NEXT: { 399; CHECK-NEXT: jumpr r31 400; CHECK-NEXT: vmem(r3+#0) = v10 401; CHECK-NEXT: } 402b0: 403 %v0 = getelementptr <128 x i8>, <128 x i8>* %a11, i32 0 404 store <128 x i8> %a0, <128 x i8>* %v0, align 128 405 %v1 = getelementptr <128 x i8>, <128 x i8>* %a11, i32 1 406 store <128 x i8> %a1, <128 x i8>* %v1, align 128 407 %v2 = getelementptr <128 x i8>, <128 x i8>* %a11, i32 2 408 store <128 x i8> %a2, <128 x i8>* %v2, align 128 409 %v3 = getelementptr <128 x i8>, <128 x i8>* %a11, i32 3 410 store <128 x i8> %a3, <128 x i8>* %v3, align 128 411 %v4 = getelementptr <128 x i8>, <128 x i8>* %a11, i32 4 412 store <128 x i8> %a4, <128 x i8>* %v4, align 128 413 %v5 = getelementptr <128 x i8>, <128 x i8>* %a11, i32 5 414 store <128 x i8> %a5, <128 x i8>* %v5, align 128 415 %v6 = getelementptr <128 x i8>, <128 x i8>* %a11, i32 6 416 store <128 x i8> %a6, <128 x i8>* %v6, align 128 417 %v7 = getelementptr <128 x i8>, <128 x i8>* %a11, i32 7 418 store <128 x i8> %a7, <128 x i8>* %v7, align 128 419 %v8 = getelementptr <128 x i8>, <128 x i8>* %a11, i32 8 420 store <128 x i8> %a8, <128 x i8>* %v8, align 128 421 %v9 = getelementptr <128 x i8>, <128 x i8>* %a11, i32 9 422 store <128 x i8> %a9, <128 x i8>* %v9, align 128 423 %v10 = getelementptr <128 x i8>, <128 x i8>* %a11, i32 10 424 store <128 x i8> %a10, <128 x i8>* %v10, align 128 425 ret void 426} 427 428define void @f11(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, <128 x i8> %a4, <128 x i8> %a5, <128 x i8> %a6, <128 x i8> %a7, <128 x i8> %a8, <128 x i8> %a9, <128 x i8> %a10, <128 x i8> %a11, <128 x i8>* %a12) #0 { 429; CHECK-LABEL: f11: 430; CHECK: // %bb.0: // %b0 431; CHECK-NEXT: { 432; CHECK-NEXT: r1 = add(r0,#1024) 433; CHECK-NEXT: r2 = add(r0,#1152) 434; CHECK-NEXT: r3 = add(r0,#1280) 435; CHECK-NEXT: r4 = add(r0,#1408) 436; CHECK-NEXT: } 437; CHECK-NEXT: { 438; CHECK-NEXT: vmem(r0+#0) = v0 439; CHECK-NEXT: } 440; CHECK-NEXT: { 441; CHECK-NEXT: vmem(r0+#1) = v1 442; CHECK-NEXT: } 443; CHECK-NEXT: { 444; CHECK-NEXT: vmem(r0+#2) = v2 445; CHECK-NEXT: } 446; CHECK-NEXT: { 447; CHECK-NEXT: vmem(r0+#3) = v3 448; CHECK-NEXT: } 449; CHECK-NEXT: { 450; CHECK-NEXT: vmem(r0+#4) = v4 451; CHECK-NEXT: } 452; CHECK-NEXT: { 453; CHECK-NEXT: vmem(r0+#5) = v5 454; CHECK-NEXT: } 455; CHECK-NEXT: { 456; CHECK-NEXT: vmem(r0+#6) = v6 457; CHECK-NEXT: } 458; CHECK-NEXT: { 459; CHECK-NEXT: vmem(r0+#7) = v7 460; CHECK-NEXT: } 461; CHECK-NEXT: { 462; CHECK-NEXT: vmem(r1+#0) = v8 463; CHECK-NEXT: } 464; CHECK-NEXT: { 465; CHECK-NEXT: vmem(r2+#0) = v9 466; CHECK-NEXT: } 467; CHECK-NEXT: { 468; CHECK-NEXT: vmem(r3+#0) = v10 469; CHECK-NEXT: } 470; CHECK-NEXT: { 471; CHECK-NEXT: jumpr r31 472; CHECK-NEXT: vmem(r4+#0) = v11 473; CHECK-NEXT: } 474b0: 475 %v0 = getelementptr <128 x i8>, <128 x i8>* %a12, i32 0 476 store <128 x i8> %a0, <128 x i8>* %v0, align 128 477 %v1 = getelementptr <128 x i8>, <128 x i8>* %a12, i32 1 478 store <128 x i8> %a1, <128 x i8>* %v1, align 128 479 %v2 = getelementptr <128 x i8>, <128 x i8>* %a12, i32 2 480 store <128 x i8> %a2, <128 x i8>* %v2, align 128 481 %v3 = getelementptr <128 x i8>, <128 x i8>* %a12, i32 3 482 store <128 x i8> %a3, <128 x i8>* %v3, align 128 483 %v4 = getelementptr <128 x i8>, <128 x i8>* %a12, i32 4 484 store <128 x i8> %a4, <128 x i8>* %v4, align 128 485 %v5 = getelementptr <128 x i8>, <128 x i8>* %a12, i32 5 486 store <128 x i8> %a5, <128 x i8>* %v5, align 128 487 %v6 = getelementptr <128 x i8>, <128 x i8>* %a12, i32 6 488 store <128 x i8> %a6, <128 x i8>* %v6, align 128 489 %v7 = getelementptr <128 x i8>, <128 x i8>* %a12, i32 7 490 store <128 x i8> %a7, <128 x i8>* %v7, align 128 491 %v8 = getelementptr <128 x i8>, <128 x i8>* %a12, i32 8 492 store <128 x i8> %a8, <128 x i8>* %v8, align 128 493 %v9 = getelementptr <128 x i8>, <128 x i8>* %a12, i32 9 494 store <128 x i8> %a9, <128 x i8>* %v9, align 128 495 %v10 = getelementptr <128 x i8>, <128 x i8>* %a12, i32 10 496 store <128 x i8> %a10, <128 x i8>* %v10, align 128 497 %v11 = getelementptr <128 x i8>, <128 x i8>* %a12, i32 11 498 store <128 x i8> %a11, <128 x i8>* %v11, align 128 499 ret void 500} 501 502define void @f12(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, <128 x i8> %a4, <128 x i8> %a5, <128 x i8> %a6, <128 x i8> %a7, <128 x i8> %a8, <128 x i8> %a9, <128 x i8> %a10, <128 x i8> %a11, <128 x i8> %a12, <128 x i8>* %a13) #0 { 503; CHECK-LABEL: f12: 504; CHECK: // %bb.0: // %b0 505; CHECK-NEXT: { 506; CHECK-NEXT: r1 = add(r0,#1024) 507; CHECK-NEXT: r2 = add(r0,#1152) 508; CHECK-NEXT: r3 = add(r0,#1280) 509; CHECK-NEXT: r4 = add(r0,#1408) 510; CHECK-NEXT: } 511; CHECK-NEXT: { 512; CHECK-NEXT: r5 = add(r0,#1536) 513; CHECK-NEXT: vmem(r0+#0) = v0 514; CHECK-NEXT: } 515; CHECK-NEXT: { 516; CHECK-NEXT: vmem(r0+#1) = v1 517; CHECK-NEXT: } 518; CHECK-NEXT: { 519; CHECK-NEXT: vmem(r0+#2) = v2 520; CHECK-NEXT: } 521; CHECK-NEXT: { 522; CHECK-NEXT: vmem(r0+#3) = v3 523; CHECK-NEXT: } 524; CHECK-NEXT: { 525; CHECK-NEXT: vmem(r0+#4) = v4 526; CHECK-NEXT: } 527; CHECK-NEXT: { 528; CHECK-NEXT: vmem(r0+#5) = v5 529; CHECK-NEXT: } 530; CHECK-NEXT: { 531; CHECK-NEXT: vmem(r0+#6) = v6 532; CHECK-NEXT: } 533; CHECK-NEXT: { 534; CHECK-NEXT: vmem(r0+#7) = v7 535; CHECK-NEXT: } 536; CHECK-NEXT: { 537; CHECK-NEXT: vmem(r1+#0) = v8 538; CHECK-NEXT: } 539; CHECK-NEXT: { 540; CHECK-NEXT: vmem(r2+#0) = v9 541; CHECK-NEXT: } 542; CHECK-NEXT: { 543; CHECK-NEXT: vmem(r3+#0) = v10 544; CHECK-NEXT: } 545; CHECK-NEXT: { 546; CHECK-NEXT: vmem(r4+#0) = v11 547; CHECK-NEXT: } 548; CHECK-NEXT: { 549; CHECK-NEXT: jumpr r31 550; CHECK-NEXT: vmem(r5+#0) = v12 551; CHECK-NEXT: } 552b0: 553 %v0 = getelementptr <128 x i8>, <128 x i8>* %a13, i32 0 554 store <128 x i8> %a0, <128 x i8>* %v0, align 128 555 %v1 = getelementptr <128 x i8>, <128 x i8>* %a13, i32 1 556 store <128 x i8> %a1, <128 x i8>* %v1, align 128 557 %v2 = getelementptr <128 x i8>, <128 x i8>* %a13, i32 2 558 store <128 x i8> %a2, <128 x i8>* %v2, align 128 559 %v3 = getelementptr <128 x i8>, <128 x i8>* %a13, i32 3 560 store <128 x i8> %a3, <128 x i8>* %v3, align 128 561 %v4 = getelementptr <128 x i8>, <128 x i8>* %a13, i32 4 562 store <128 x i8> %a4, <128 x i8>* %v4, align 128 563 %v5 = getelementptr <128 x i8>, <128 x i8>* %a13, i32 5 564 store <128 x i8> %a5, <128 x i8>* %v5, align 128 565 %v6 = getelementptr <128 x i8>, <128 x i8>* %a13, i32 6 566 store <128 x i8> %a6, <128 x i8>* %v6, align 128 567 %v7 = getelementptr <128 x i8>, <128 x i8>* %a13, i32 7 568 store <128 x i8> %a7, <128 x i8>* %v7, align 128 569 %v8 = getelementptr <128 x i8>, <128 x i8>* %a13, i32 8 570 store <128 x i8> %a8, <128 x i8>* %v8, align 128 571 %v9 = getelementptr <128 x i8>, <128 x i8>* %a13, i32 9 572 store <128 x i8> %a9, <128 x i8>* %v9, align 128 573 %v10 = getelementptr <128 x i8>, <128 x i8>* %a13, i32 10 574 store <128 x i8> %a10, <128 x i8>* %v10, align 128 575 %v11 = getelementptr <128 x i8>, <128 x i8>* %a13, i32 11 576 store <128 x i8> %a11, <128 x i8>* %v11, align 128 577 %v12 = getelementptr <128 x i8>, <128 x i8>* %a13, i32 12 578 store <128 x i8> %a12, <128 x i8>* %v12, align 128 579 ret void 580} 581 582define void @f13(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, <128 x i8> %a4, <128 x i8> %a5, <128 x i8> %a6, <128 x i8> %a7, <128 x i8> %a8, <128 x i8> %a9, <128 x i8> %a10, <128 x i8> %a11, <128 x i8> %a12, <128 x i8> %a13, <128 x i8>* %a14) #0 { 583; CHECK-LABEL: f13: 584; CHECK: // %bb.0: // %b0 585; CHECK-NEXT: { 586; CHECK-NEXT: r2 = add(r0,#1152) 587; CHECK-NEXT: r3 = add(r0,#1280) 588; CHECK-NEXT: r1 = add(r0,#1024) 589; CHECK-NEXT: r4 = add(r0,#1408) 590; CHECK-NEXT: } 591; CHECK-NEXT: { 592; CHECK-NEXT: r2 = add(r0,#1664) 593; CHECK-NEXT: vmem(r2+#0) = v9 594; CHECK-NEXT: } 595; CHECK-NEXT: { 596; CHECK-NEXT: r3 = add(r0,#1536) 597; CHECK-NEXT: vmem(r3+#0) = v10 598; CHECK-NEXT: } 599; CHECK-NEXT: { 600; CHECK-NEXT: vmem(r0+#0) = v0 601; CHECK-NEXT: } 602; CHECK-NEXT: { 603; CHECK-NEXT: vmem(r0+#1) = v1 604; CHECK-NEXT: } 605; CHECK-NEXT: { 606; CHECK-NEXT: vmem(r1+#0) = v8 607; CHECK-NEXT: } 608; CHECK-NEXT: { 609; CHECK-NEXT: vmem(r0+#2) = v2 610; CHECK-NEXT: } 611; CHECK-NEXT: { 612; CHECK-NEXT: vmem(r0+#3) = v3 613; CHECK-NEXT: } 614; CHECK-NEXT: { 615; CHECK-NEXT: vmem(r0+#4) = v4 616; CHECK-NEXT: } 617; CHECK-NEXT: { 618; CHECK-NEXT: vmem(r0+#5) = v5 619; CHECK-NEXT: } 620; CHECK-NEXT: { 621; CHECK-NEXT: vmem(r0+#6) = v6 622; CHECK-NEXT: } 623; CHECK-NEXT: { 624; CHECK-NEXT: vmem(r4+#0) = v11 625; CHECK-NEXT: } 626; CHECK-NEXT: { 627; CHECK-NEXT: vmem(r0+#7) = v7 628; CHECK-NEXT: } 629; CHECK-NEXT: { 630; CHECK-NEXT: vmem(r3+#0) = v12 631; CHECK-NEXT: } 632; CHECK-NEXT: { 633; CHECK-NEXT: jumpr r31 634; CHECK-NEXT: vmem(r2+#0) = v13 635; CHECK-NEXT: } 636b0: 637 %v0 = getelementptr <128 x i8>, <128 x i8>* %a14, i32 0 638 store <128 x i8> %a0, <128 x i8>* %v0, align 128 639 %v1 = getelementptr <128 x i8>, <128 x i8>* %a14, i32 1 640 store <128 x i8> %a1, <128 x i8>* %v1, align 128 641 %v2 = getelementptr <128 x i8>, <128 x i8>* %a14, i32 2 642 store <128 x i8> %a2, <128 x i8>* %v2, align 128 643 %v3 = getelementptr <128 x i8>, <128 x i8>* %a14, i32 3 644 store <128 x i8> %a3, <128 x i8>* %v3, align 128 645 %v4 = getelementptr <128 x i8>, <128 x i8>* %a14, i32 4 646 store <128 x i8> %a4, <128 x i8>* %v4, align 128 647 %v5 = getelementptr <128 x i8>, <128 x i8>* %a14, i32 5 648 store <128 x i8> %a5, <128 x i8>* %v5, align 128 649 %v6 = getelementptr <128 x i8>, <128 x i8>* %a14, i32 6 650 store <128 x i8> %a6, <128 x i8>* %v6, align 128 651 %v7 = getelementptr <128 x i8>, <128 x i8>* %a14, i32 7 652 store <128 x i8> %a7, <128 x i8>* %v7, align 128 653 %v8 = getelementptr <128 x i8>, <128 x i8>* %a14, i32 8 654 store <128 x i8> %a8, <128 x i8>* %v8, align 128 655 %v9 = getelementptr <128 x i8>, <128 x i8>* %a14, i32 9 656 store <128 x i8> %a9, <128 x i8>* %v9, align 128 657 %v10 = getelementptr <128 x i8>, <128 x i8>* %a14, i32 10 658 store <128 x i8> %a10, <128 x i8>* %v10, align 128 659 %v11 = getelementptr <128 x i8>, <128 x i8>* %a14, i32 11 660 store <128 x i8> %a11, <128 x i8>* %v11, align 128 661 %v12 = getelementptr <128 x i8>, <128 x i8>* %a14, i32 12 662 store <128 x i8> %a12, <128 x i8>* %v12, align 128 663 %v13 = getelementptr <128 x i8>, <128 x i8>* %a14, i32 13 664 store <128 x i8> %a13, <128 x i8>* %v13, align 128 665 ret void 666} 667 668define void @f14(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, <128 x i8> %a4, <128 x i8> %a5, <128 x i8> %a6, <128 x i8> %a7, <128 x i8> %a8, <128 x i8> %a9, <128 x i8> %a10, <128 x i8> %a11, <128 x i8> %a12, <128 x i8> %a13, <128 x i8> %a14, <128 x i8>* %a15) #0 { 669; CHECK-LABEL: f14: 670; CHECK: // %bb.0: // %b0 671; CHECK-NEXT: { 672; CHECK-NEXT: r2 = add(r0,#1152) 673; CHECK-NEXT: r3 = add(r0,#1280) 674; CHECK-NEXT: r4 = add(r0,#1408) 675; CHECK-NEXT: r1 = add(r0,#1024) 676; CHECK-NEXT: } 677; CHECK-NEXT: { 678; CHECK-NEXT: r2 = add(r0,#1792) 679; CHECK-NEXT: vmem(r2+#0) = v9 680; CHECK-NEXT: } 681; CHECK-NEXT: { 682; CHECK-NEXT: r3 = add(r0,#1664) 683; CHECK-NEXT: vmem(r3+#0) = v10 684; CHECK-NEXT: } 685; CHECK-NEXT: { 686; CHECK-NEXT: r4 = add(r0,#1536) 687; CHECK-NEXT: vmem(r4+#0) = v11 688; CHECK-NEXT: } 689; CHECK-NEXT: { 690; CHECK-NEXT: vmem(r0+#0) = v0 691; CHECK-NEXT: } 692; CHECK-NEXT: { 693; CHECK-NEXT: vmem(r1+#0) = v8 694; CHECK-NEXT: } 695; CHECK-NEXT: { 696; CHECK-NEXT: vmem(r0+#1) = v1 697; CHECK-NEXT: } 698; CHECK-NEXT: { 699; CHECK-NEXT: vmem(r0+#2) = v2 700; CHECK-NEXT: } 701; CHECK-NEXT: { 702; CHECK-NEXT: vmem(r0+#3) = v3 703; CHECK-NEXT: } 704; CHECK-NEXT: { 705; CHECK-NEXT: vmem(r0+#4) = v4 706; CHECK-NEXT: } 707; CHECK-NEXT: { 708; CHECK-NEXT: vmem(r0+#5) = v5 709; CHECK-NEXT: } 710; CHECK-NEXT: { 711; CHECK-NEXT: vmem(r0+#6) = v6 712; CHECK-NEXT: } 713; CHECK-NEXT: { 714; CHECK-NEXT: vmem(r4+#0) = v12 715; CHECK-NEXT: } 716; CHECK-NEXT: { 717; CHECK-NEXT: vmem(r0+#7) = v7 718; CHECK-NEXT: } 719; CHECK-NEXT: { 720; CHECK-NEXT: vmem(r3+#0) = v13 721; CHECK-NEXT: } 722; CHECK-NEXT: { 723; CHECK-NEXT: jumpr r31 724; CHECK-NEXT: vmem(r2+#0) = v14 725; CHECK-NEXT: } 726b0: 727 %v0 = getelementptr <128 x i8>, <128 x i8>* %a15, i32 0 728 store <128 x i8> %a0, <128 x i8>* %v0, align 128 729 %v1 = getelementptr <128 x i8>, <128 x i8>* %a15, i32 1 730 store <128 x i8> %a1, <128 x i8>* %v1, align 128 731 %v2 = getelementptr <128 x i8>, <128 x i8>* %a15, i32 2 732 store <128 x i8> %a2, <128 x i8>* %v2, align 128 733 %v3 = getelementptr <128 x i8>, <128 x i8>* %a15, i32 3 734 store <128 x i8> %a3, <128 x i8>* %v3, align 128 735 %v4 = getelementptr <128 x i8>, <128 x i8>* %a15, i32 4 736 store <128 x i8> %a4, <128 x i8>* %v4, align 128 737 %v5 = getelementptr <128 x i8>, <128 x i8>* %a15, i32 5 738 store <128 x i8> %a5, <128 x i8>* %v5, align 128 739 %v6 = getelementptr <128 x i8>, <128 x i8>* %a15, i32 6 740 store <128 x i8> %a6, <128 x i8>* %v6, align 128 741 %v7 = getelementptr <128 x i8>, <128 x i8>* %a15, i32 7 742 store <128 x i8> %a7, <128 x i8>* %v7, align 128 743 %v8 = getelementptr <128 x i8>, <128 x i8>* %a15, i32 8 744 store <128 x i8> %a8, <128 x i8>* %v8, align 128 745 %v9 = getelementptr <128 x i8>, <128 x i8>* %a15, i32 9 746 store <128 x i8> %a9, <128 x i8>* %v9, align 128 747 %v10 = getelementptr <128 x i8>, <128 x i8>* %a15, i32 10 748 store <128 x i8> %a10, <128 x i8>* %v10, align 128 749 %v11 = getelementptr <128 x i8>, <128 x i8>* %a15, i32 11 750 store <128 x i8> %a11, <128 x i8>* %v11, align 128 751 %v12 = getelementptr <128 x i8>, <128 x i8>* %a15, i32 12 752 store <128 x i8> %a12, <128 x i8>* %v12, align 128 753 %v13 = getelementptr <128 x i8>, <128 x i8>* %a15, i32 13 754 store <128 x i8> %a13, <128 x i8>* %v13, align 128 755 %v14 = getelementptr <128 x i8>, <128 x i8>* %a15, i32 14 756 store <128 x i8> %a14, <128 x i8>* %v14, align 128 757 ret void 758} 759 760define void @f15(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, <128 x i8> %a4, <128 x i8> %a5, <128 x i8> %a6, <128 x i8> %a7, <128 x i8> %a8, <128 x i8> %a9, <128 x i8> %a10, <128 x i8> %a11, <128 x i8> %a12, <128 x i8> %a13, <128 x i8> %a14, <128 x i8> %a15, <128 x i8>* %a16) #0 { 761; CHECK-LABEL: f15: 762; CHECK: // %bb.0: // %b0 763; CHECK-NEXT: { 764; CHECK-NEXT: r2 = add(r0,#1152) 765; CHECK-NEXT: r3 = add(r0,#1280) 766; CHECK-NEXT: r1 = add(r0,#1024) 767; CHECK-NEXT: r6 = add(r0,#1408) 768; CHECK-NEXT: } 769; CHECK-NEXT: { 770; CHECK-NEXT: r5 = add(r0,#1536) 771; CHECK-NEXT: r4 = add(r0,#1664) 772; CHECK-NEXT: r2 = add(r0,#1920) 773; CHECK-NEXT: vmem(r2+#0) = v9 774; CHECK-NEXT: } 775; CHECK-NEXT: { 776; CHECK-NEXT: r3 = add(r0,#1792) 777; CHECK-NEXT: vmem(r3+#0) = v10 778; CHECK-NEXT: } 779; CHECK-NEXT: { 780; CHECK-NEXT: vmem(r0+#0) = v0 781; CHECK-NEXT: } 782; CHECK-NEXT: { 783; CHECK-NEXT: vmem(r0+#1) = v1 784; CHECK-NEXT: } 785; CHECK-NEXT: { 786; CHECK-NEXT: vmem(r1+#0) = v8 787; CHECK-NEXT: } 788; CHECK-NEXT: { 789; CHECK-NEXT: vmem(r0+#2) = v2 790; CHECK-NEXT: } 791; CHECK-NEXT: { 792; CHECK-NEXT: vmem(r0+#3) = v3 793; CHECK-NEXT: } 794; CHECK-NEXT: { 795; CHECK-NEXT: vmem(r0+#4) = v4 796; CHECK-NEXT: } 797; CHECK-NEXT: { 798; CHECK-NEXT: vmem(r6+#0) = v11 799; CHECK-NEXT: } 800; CHECK-NEXT: { 801; CHECK-NEXT: vmem(r0+#5) = v5 802; CHECK-NEXT: } 803; CHECK-NEXT: { 804; CHECK-NEXT: vmem(r5+#0) = v12 805; CHECK-NEXT: } 806; CHECK-NEXT: { 807; CHECK-NEXT: vmem(r0+#6) = v6 808; CHECK-NEXT: } 809; CHECK-NEXT: { 810; CHECK-NEXT: vmem(r4+#0) = v13 811; CHECK-NEXT: } 812; CHECK-NEXT: { 813; CHECK-NEXT: vmem(r0+#7) = v7 814; CHECK-NEXT: } 815; CHECK-NEXT: { 816; CHECK-NEXT: vmem(r3+#0) = v14 817; CHECK-NEXT: } 818; CHECK-NEXT: { 819; CHECK-NEXT: jumpr r31 820; CHECK-NEXT: vmem(r2+#0) = v15 821; CHECK-NEXT: } 822b0: 823 %v0 = getelementptr <128 x i8>, <128 x i8>* %a16, i32 0 824 store <128 x i8> %a0, <128 x i8>* %v0, align 128 825 %v1 = getelementptr <128 x i8>, <128 x i8>* %a16, i32 1 826 store <128 x i8> %a1, <128 x i8>* %v1, align 128 827 %v2 = getelementptr <128 x i8>, <128 x i8>* %a16, i32 2 828 store <128 x i8> %a2, <128 x i8>* %v2, align 128 829 %v3 = getelementptr <128 x i8>, <128 x i8>* %a16, i32 3 830 store <128 x i8> %a3, <128 x i8>* %v3, align 128 831 %v4 = getelementptr <128 x i8>, <128 x i8>* %a16, i32 4 832 store <128 x i8> %a4, <128 x i8>* %v4, align 128 833 %v5 = getelementptr <128 x i8>, <128 x i8>* %a16, i32 5 834 store <128 x i8> %a5, <128 x i8>* %v5, align 128 835 %v6 = getelementptr <128 x i8>, <128 x i8>* %a16, i32 6 836 store <128 x i8> %a6, <128 x i8>* %v6, align 128 837 %v7 = getelementptr <128 x i8>, <128 x i8>* %a16, i32 7 838 store <128 x i8> %a7, <128 x i8>* %v7, align 128 839 %v8 = getelementptr <128 x i8>, <128 x i8>* %a16, i32 8 840 store <128 x i8> %a8, <128 x i8>* %v8, align 128 841 %v9 = getelementptr <128 x i8>, <128 x i8>* %a16, i32 9 842 store <128 x i8> %a9, <128 x i8>* %v9, align 128 843 %v10 = getelementptr <128 x i8>, <128 x i8>* %a16, i32 10 844 store <128 x i8> %a10, <128 x i8>* %v10, align 128 845 %v11 = getelementptr <128 x i8>, <128 x i8>* %a16, i32 11 846 store <128 x i8> %a11, <128 x i8>* %v11, align 128 847 %v12 = getelementptr <128 x i8>, <128 x i8>* %a16, i32 12 848 store <128 x i8> %a12, <128 x i8>* %v12, align 128 849 %v13 = getelementptr <128 x i8>, <128 x i8>* %a16, i32 13 850 store <128 x i8> %a13, <128 x i8>* %v13, align 128 851 %v14 = getelementptr <128 x i8>, <128 x i8>* %a16, i32 14 852 store <128 x i8> %a14, <128 x i8>* %v14, align 128 853 %v15 = getelementptr <128 x i8>, <128 x i8>* %a16, i32 15 854 store <128 x i8> %a15, <128 x i8>* %v15, align 128 855 ret void 856} 857 858define void @f16(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, <128 x i8> %a4, <128 x i8> %a5, <128 x i8> %a6, <128 x i8> %a7, <128 x i8> %a8, <128 x i8> %a9, <128 x i8> %a10, <128 x i8> %a11, <128 x i8> %a12, <128 x i8> %a13, <128 x i8> %a14, <128 x i8> %a15, <128 x i8> %a16, <128 x i8>* %a17) #0 { 859; CHECK-LABEL: f16: 860; CHECK: // %bb.0: // %b0 861; CHECK-NEXT: { 862; CHECK-NEXT: r2 = add(r0,#1152) 863; CHECK-NEXT: r3 = add(r0,#1280) 864; CHECK-NEXT: r4 = add(r0,#1408) 865; CHECK-NEXT: allocframe(r29,#0):raw 866; CHECK-NEXT: } 867; CHECK-NEXT: { 868; CHECK-NEXT: r1 = add(r30,#8) 869; CHECK-NEXT: r7 = add(r0,#1024) 870; CHECK-NEXT: r6 = add(r0,#1536) 871; CHECK-NEXT: vmem(r2+#0) = v9 872; CHECK-NEXT: } 873; CHECK-NEXT: { 874; CHECK-NEXT: r5 = add(r0,#1664) 875; CHECK-NEXT: r3 = add(r0,#1920) 876; CHECK-NEXT: r2 = add(r0,#2048) 877; CHECK-NEXT: vmem(r3+#0) = v10 878; CHECK-NEXT: } 879; CHECK-NEXT: { 880; CHECK-NEXT: r4 = add(r0,#1792) 881; CHECK-NEXT: r29 = and(r29,#-128) 882; CHECK-NEXT: v16 = vmem(r1+#0) 883; CHECK-NEXT: vmem(r4+#0) = v11 884; CHECK-NEXT: } 885; CHECK-NEXT: { 886; CHECK-NEXT: vmem(r0+#0) = v0 887; CHECK-NEXT: } 888; CHECK-NEXT: { 889; CHECK-NEXT: vmem(r0+#1) = v1 890; CHECK-NEXT: } 891; CHECK-NEXT: { 892; CHECK-NEXT: vmem(r7+#0) = v8 893; CHECK-NEXT: } 894; CHECK-NEXT: { 895; CHECK-NEXT: vmem(r0+#2) = v2 896; CHECK-NEXT: } 897; CHECK-NEXT: { 898; CHECK-NEXT: vmem(r0+#3) = v3 899; CHECK-NEXT: } 900; CHECK-NEXT: { 901; CHECK-NEXT: vmem(r0+#4) = v4 902; CHECK-NEXT: } 903; CHECK-NEXT: { 904; CHECK-NEXT: vmem(r6+#0) = v12 905; CHECK-NEXT: } 906; CHECK-NEXT: { 907; CHECK-NEXT: vmem(r0+#5) = v5 908; CHECK-NEXT: } 909; CHECK-NEXT: { 910; CHECK-NEXT: vmem(r5+#0) = v13 911; CHECK-NEXT: } 912; CHECK-NEXT: { 913; CHECK-NEXT: vmem(r0+#6) = v6 914; CHECK-NEXT: } 915; CHECK-NEXT: { 916; CHECK-NEXT: vmem(r4+#0) = v14 917; CHECK-NEXT: } 918; CHECK-NEXT: { 919; CHECK-NEXT: vmem(r0+#7) = v7 920; CHECK-NEXT: } 921; CHECK-NEXT: { 922; CHECK-NEXT: vmem(r3+#0) = v15 923; CHECK-NEXT: } 924; CHECK-NEXT: { 925; CHECK-NEXT: vmem(r2+#0) = v16 926; CHECK-NEXT: } 927; CHECK-NEXT: { 928; CHECK-NEXT: r31:30 = dealloc_return(r30):raw 929; CHECK-NEXT: } 930b0: 931 %v0 = getelementptr <128 x i8>, <128 x i8>* %a17, i32 0 932 store <128 x i8> %a0, <128 x i8>* %v0, align 128 933 %v1 = getelementptr <128 x i8>, <128 x i8>* %a17, i32 1 934 store <128 x i8> %a1, <128 x i8>* %v1, align 128 935 %v2 = getelementptr <128 x i8>, <128 x i8>* %a17, i32 2 936 store <128 x i8> %a2, <128 x i8>* %v2, align 128 937 %v3 = getelementptr <128 x i8>, <128 x i8>* %a17, i32 3 938 store <128 x i8> %a3, <128 x i8>* %v3, align 128 939 %v4 = getelementptr <128 x i8>, <128 x i8>* %a17, i32 4 940 store <128 x i8> %a4, <128 x i8>* %v4, align 128 941 %v5 = getelementptr <128 x i8>, <128 x i8>* %a17, i32 5 942 store <128 x i8> %a5, <128 x i8>* %v5, align 128 943 %v6 = getelementptr <128 x i8>, <128 x i8>* %a17, i32 6 944 store <128 x i8> %a6, <128 x i8>* %v6, align 128 945 %v7 = getelementptr <128 x i8>, <128 x i8>* %a17, i32 7 946 store <128 x i8> %a7, <128 x i8>* %v7, align 128 947 %v8 = getelementptr <128 x i8>, <128 x i8>* %a17, i32 8 948 store <128 x i8> %a8, <128 x i8>* %v8, align 128 949 %v9 = getelementptr <128 x i8>, <128 x i8>* %a17, i32 9 950 store <128 x i8> %a9, <128 x i8>* %v9, align 128 951 %v10 = getelementptr <128 x i8>, <128 x i8>* %a17, i32 10 952 store <128 x i8> %a10, <128 x i8>* %v10, align 128 953 %v11 = getelementptr <128 x i8>, <128 x i8>* %a17, i32 11 954 store <128 x i8> %a11, <128 x i8>* %v11, align 128 955 %v12 = getelementptr <128 x i8>, <128 x i8>* %a17, i32 12 956 store <128 x i8> %a12, <128 x i8>* %v12, align 128 957 %v13 = getelementptr <128 x i8>, <128 x i8>* %a17, i32 13 958 store <128 x i8> %a13, <128 x i8>* %v13, align 128 959 %v14 = getelementptr <128 x i8>, <128 x i8>* %a17, i32 14 960 store <128 x i8> %a14, <128 x i8>* %v14, align 128 961 %v15 = getelementptr <128 x i8>, <128 x i8>* %a17, i32 15 962 store <128 x i8> %a15, <128 x i8>* %v15, align 128 963 %v16 = getelementptr <128 x i8>, <128 x i8>* %a17, i32 16 964 store <128 x i8> %a16, <128 x i8>* %v16, align 128 965 ret void 966} 967 968define void @f17(<64 x i16> %a0, <64 x i16> %a1, <64 x i16> %a2, <64 x i16> %a3, <64 x i16> %a4, <64 x i16> %a5, <64 x i16> %a6, <64 x i16> %a7, <64 x i16> %a8, <64 x i16> %a9, <64 x i16> %a10, <64 x i16> %a11, <64 x i16> %a12, <64 x i16> %a13, <64 x i16> %a14, <64 x i16> %a15, <64 x i16> %a16, <64 x i16>* %a17) #0 { 969; CHECK-LABEL: f17: 970; CHECK: // %bb.0: // %b0 971; CHECK-NEXT: { 972; CHECK-NEXT: r2 = add(r0,#1152) 973; CHECK-NEXT: r3 = add(r0,#1280) 974; CHECK-NEXT: r4 = add(r0,#1408) 975; CHECK-NEXT: allocframe(r29,#0):raw 976; CHECK-NEXT: } 977; CHECK-NEXT: { 978; CHECK-NEXT: r1 = add(r30,#8) 979; CHECK-NEXT: r7 = add(r0,#1024) 980; CHECK-NEXT: r6 = add(r0,#1536) 981; CHECK-NEXT: vmem(r2+#0) = v9 982; CHECK-NEXT: } 983; CHECK-NEXT: { 984; CHECK-NEXT: r5 = add(r0,#1664) 985; CHECK-NEXT: r3 = add(r0,#1920) 986; CHECK-NEXT: r2 = add(r0,#2048) 987; CHECK-NEXT: vmem(r3+#0) = v10 988; CHECK-NEXT: } 989; CHECK-NEXT: { 990; CHECK-NEXT: r4 = add(r0,#1792) 991; CHECK-NEXT: r29 = and(r29,#-128) 992; CHECK-NEXT: v16 = vmem(r1+#0) 993; CHECK-NEXT: vmem(r4+#0) = v11 994; CHECK-NEXT: } 995; CHECK-NEXT: { 996; CHECK-NEXT: vmem(r0+#0) = v0 997; CHECK-NEXT: } 998; CHECK-NEXT: { 999; CHECK-NEXT: vmem(r0+#1) = v1 1000; CHECK-NEXT: } 1001; CHECK-NEXT: { 1002; CHECK-NEXT: vmem(r7+#0) = v8 1003; CHECK-NEXT: } 1004; CHECK-NEXT: { 1005; CHECK-NEXT: vmem(r0+#2) = v2 1006; CHECK-NEXT: } 1007; CHECK-NEXT: { 1008; CHECK-NEXT: vmem(r0+#3) = v3 1009; CHECK-NEXT: } 1010; CHECK-NEXT: { 1011; CHECK-NEXT: vmem(r0+#4) = v4 1012; CHECK-NEXT: } 1013; CHECK-NEXT: { 1014; CHECK-NEXT: vmem(r6+#0) = v12 1015; CHECK-NEXT: } 1016; CHECK-NEXT: { 1017; CHECK-NEXT: vmem(r0+#5) = v5 1018; CHECK-NEXT: } 1019; CHECK-NEXT: { 1020; CHECK-NEXT: vmem(r5+#0) = v13 1021; CHECK-NEXT: } 1022; CHECK-NEXT: { 1023; CHECK-NEXT: vmem(r0+#6) = v6 1024; CHECK-NEXT: } 1025; CHECK-NEXT: { 1026; CHECK-NEXT: vmem(r4+#0) = v14 1027; CHECK-NEXT: } 1028; CHECK-NEXT: { 1029; CHECK-NEXT: vmem(r0+#7) = v7 1030; CHECK-NEXT: } 1031; CHECK-NEXT: { 1032; CHECK-NEXT: vmem(r3+#0) = v15 1033; CHECK-NEXT: } 1034; CHECK-NEXT: { 1035; CHECK-NEXT: vmem(r2+#0) = v16 1036; CHECK-NEXT: } 1037; CHECK-NEXT: { 1038; CHECK-NEXT: r31:30 = dealloc_return(r30):raw 1039; CHECK-NEXT: } 1040b0: 1041 %v0 = getelementptr <64 x i16>, <64 x i16>* %a17, i32 0 1042 store <64 x i16> %a0, <64 x i16>* %v0, align 128 1043 %v1 = getelementptr <64 x i16>, <64 x i16>* %a17, i32 1 1044 store <64 x i16> %a1, <64 x i16>* %v1, align 128 1045 %v2 = getelementptr <64 x i16>, <64 x i16>* %a17, i32 2 1046 store <64 x i16> %a2, <64 x i16>* %v2, align 128 1047 %v3 = getelementptr <64 x i16>, <64 x i16>* %a17, i32 3 1048 store <64 x i16> %a3, <64 x i16>* %v3, align 128 1049 %v4 = getelementptr <64 x i16>, <64 x i16>* %a17, i32 4 1050 store <64 x i16> %a4, <64 x i16>* %v4, align 128 1051 %v5 = getelementptr <64 x i16>, <64 x i16>* %a17, i32 5 1052 store <64 x i16> %a5, <64 x i16>* %v5, align 128 1053 %v6 = getelementptr <64 x i16>, <64 x i16>* %a17, i32 6 1054 store <64 x i16> %a6, <64 x i16>* %v6, align 128 1055 %v7 = getelementptr <64 x i16>, <64 x i16>* %a17, i32 7 1056 store <64 x i16> %a7, <64 x i16>* %v7, align 128 1057 %v8 = getelementptr <64 x i16>, <64 x i16>* %a17, i32 8 1058 store <64 x i16> %a8, <64 x i16>* %v8, align 128 1059 %v9 = getelementptr <64 x i16>, <64 x i16>* %a17, i32 9 1060 store <64 x i16> %a9, <64 x i16>* %v9, align 128 1061 %v10 = getelementptr <64 x i16>, <64 x i16>* %a17, i32 10 1062 store <64 x i16> %a10, <64 x i16>* %v10, align 128 1063 %v11 = getelementptr <64 x i16>, <64 x i16>* %a17, i32 11 1064 store <64 x i16> %a11, <64 x i16>* %v11, align 128 1065 %v12 = getelementptr <64 x i16>, <64 x i16>* %a17, i32 12 1066 store <64 x i16> %a12, <64 x i16>* %v12, align 128 1067 %v13 = getelementptr <64 x i16>, <64 x i16>* %a17, i32 13 1068 store <64 x i16> %a13, <64 x i16>* %v13, align 128 1069 %v14 = getelementptr <64 x i16>, <64 x i16>* %a17, i32 14 1070 store <64 x i16> %a14, <64 x i16>* %v14, align 128 1071 %v15 = getelementptr <64 x i16>, <64 x i16>* %a17, i32 15 1072 store <64 x i16> %a15, <64 x i16>* %v15, align 128 1073 %v16 = getelementptr <64 x i16>, <64 x i16>* %a17, i32 16 1074 store <64 x i16> %a16, <64 x i16>* %v16, align 128 1075 ret void 1076} 1077 1078define void @f18(<32 x i32> %a0, <32 x i32> %a1, <32 x i32> %a2, <32 x i32> %a3, <32 x i32> %a4, <32 x i32> %a5, <32 x i32> %a6, <32 x i32> %a7, <32 x i32> %a8, <32 x i32> %a9, <32 x i32> %a10, <32 x i32> %a11, <32 x i32> %a12, <32 x i32> %a13, <32 x i32> %a14, <32 x i32> %a15, <32 x i32> %a16, <32 x i32>* %a17) #0 { 1079; CHECK-LABEL: f18: 1080; CHECK: // %bb.0: // %b0 1081; CHECK-NEXT: { 1082; CHECK-NEXT: r2 = add(r0,#1152) 1083; CHECK-NEXT: r3 = add(r0,#1280) 1084; CHECK-NEXT: r4 = add(r0,#1408) 1085; CHECK-NEXT: allocframe(r29,#0):raw 1086; CHECK-NEXT: } 1087; CHECK-NEXT: { 1088; CHECK-NEXT: r1 = add(r30,#8) 1089; CHECK-NEXT: r7 = add(r0,#1024) 1090; CHECK-NEXT: r6 = add(r0,#1536) 1091; CHECK-NEXT: vmem(r2+#0) = v9 1092; CHECK-NEXT: } 1093; CHECK-NEXT: { 1094; CHECK-NEXT: r5 = add(r0,#1664) 1095; CHECK-NEXT: r3 = add(r0,#1920) 1096; CHECK-NEXT: r2 = add(r0,#2048) 1097; CHECK-NEXT: vmem(r3+#0) = v10 1098; CHECK-NEXT: } 1099; CHECK-NEXT: { 1100; CHECK-NEXT: r4 = add(r0,#1792) 1101; CHECK-NEXT: r29 = and(r29,#-128) 1102; CHECK-NEXT: v16 = vmem(r1+#0) 1103; CHECK-NEXT: vmem(r4+#0) = v11 1104; CHECK-NEXT: } 1105; CHECK-NEXT: { 1106; CHECK-NEXT: vmem(r0+#0) = v0 1107; CHECK-NEXT: } 1108; CHECK-NEXT: { 1109; CHECK-NEXT: vmem(r0+#1) = v1 1110; CHECK-NEXT: } 1111; CHECK-NEXT: { 1112; CHECK-NEXT: vmem(r7+#0) = v8 1113; CHECK-NEXT: } 1114; CHECK-NEXT: { 1115; CHECK-NEXT: vmem(r0+#2) = v2 1116; CHECK-NEXT: } 1117; CHECK-NEXT: { 1118; CHECK-NEXT: vmem(r0+#3) = v3 1119; CHECK-NEXT: } 1120; CHECK-NEXT: { 1121; CHECK-NEXT: vmem(r0+#4) = v4 1122; CHECK-NEXT: } 1123; CHECK-NEXT: { 1124; CHECK-NEXT: vmem(r6+#0) = v12 1125; CHECK-NEXT: } 1126; CHECK-NEXT: { 1127; CHECK-NEXT: vmem(r0+#5) = v5 1128; CHECK-NEXT: } 1129; CHECK-NEXT: { 1130; CHECK-NEXT: vmem(r5+#0) = v13 1131; CHECK-NEXT: } 1132; CHECK-NEXT: { 1133; CHECK-NEXT: vmem(r0+#6) = v6 1134; CHECK-NEXT: } 1135; CHECK-NEXT: { 1136; CHECK-NEXT: vmem(r4+#0) = v14 1137; CHECK-NEXT: } 1138; CHECK-NEXT: { 1139; CHECK-NEXT: vmem(r0+#7) = v7 1140; CHECK-NEXT: } 1141; CHECK-NEXT: { 1142; CHECK-NEXT: vmem(r3+#0) = v15 1143; CHECK-NEXT: } 1144; CHECK-NEXT: { 1145; CHECK-NEXT: vmem(r2+#0) = v16 1146; CHECK-NEXT: } 1147; CHECK-NEXT: { 1148; CHECK-NEXT: r31:30 = dealloc_return(r30):raw 1149; CHECK-NEXT: } 1150b0: 1151 %v0 = getelementptr <32 x i32>, <32 x i32>* %a17, i32 0 1152 store <32 x i32> %a0, <32 x i32>* %v0, align 128 1153 %v1 = getelementptr <32 x i32>, <32 x i32>* %a17, i32 1 1154 store <32 x i32> %a1, <32 x i32>* %v1, align 128 1155 %v2 = getelementptr <32 x i32>, <32 x i32>* %a17, i32 2 1156 store <32 x i32> %a2, <32 x i32>* %v2, align 128 1157 %v3 = getelementptr <32 x i32>, <32 x i32>* %a17, i32 3 1158 store <32 x i32> %a3, <32 x i32>* %v3, align 128 1159 %v4 = getelementptr <32 x i32>, <32 x i32>* %a17, i32 4 1160 store <32 x i32> %a4, <32 x i32>* %v4, align 128 1161 %v5 = getelementptr <32 x i32>, <32 x i32>* %a17, i32 5 1162 store <32 x i32> %a5, <32 x i32>* %v5, align 128 1163 %v6 = getelementptr <32 x i32>, <32 x i32>* %a17, i32 6 1164 store <32 x i32> %a6, <32 x i32>* %v6, align 128 1165 %v7 = getelementptr <32 x i32>, <32 x i32>* %a17, i32 7 1166 store <32 x i32> %a7, <32 x i32>* %v7, align 128 1167 %v8 = getelementptr <32 x i32>, <32 x i32>* %a17, i32 8 1168 store <32 x i32> %a8, <32 x i32>* %v8, align 128 1169 %v9 = getelementptr <32 x i32>, <32 x i32>* %a17, i32 9 1170 store <32 x i32> %a9, <32 x i32>* %v9, align 128 1171 %v10 = getelementptr <32 x i32>, <32 x i32>* %a17, i32 10 1172 store <32 x i32> %a10, <32 x i32>* %v10, align 128 1173 %v11 = getelementptr <32 x i32>, <32 x i32>* %a17, i32 11 1174 store <32 x i32> %a11, <32 x i32>* %v11, align 128 1175 %v12 = getelementptr <32 x i32>, <32 x i32>* %a17, i32 12 1176 store <32 x i32> %a12, <32 x i32>* %v12, align 128 1177 %v13 = getelementptr <32 x i32>, <32 x i32>* %a17, i32 13 1178 store <32 x i32> %a13, <32 x i32>* %v13, align 128 1179 %v14 = getelementptr <32 x i32>, <32 x i32>* %a17, i32 14 1180 store <32 x i32> %a14, <32 x i32>* %v14, align 128 1181 %v15 = getelementptr <32 x i32>, <32 x i32>* %a17, i32 15 1182 store <32 x i32> %a15, <32 x i32>* %v15, align 128 1183 %v16 = getelementptr <32 x i32>, <32 x i32>* %a17, i32 16 1184 store <32 x i32> %a16, <32 x i32>* %v16, align 128 1185 ret void 1186} 1187 1188define void @f19(<64 x half> %a0, <64 x half> %a1, <64 x half> %a2, <64 x half> %a3, <64 x half> %a4, <64 x half> %a5, <64 x half> %a6, <64 x half> %a7, <64 x half> %a8, <64 x half> %a9, <64 x half> %a10, <64 x half> %a11, <64 x half> %a12, <64 x half> %a13, <64 x half> %a14, <64 x half> %a15, <64 x half> %a16, <64 x half>* %a17) #0 { 1189; CHECK-LABEL: f19: 1190; CHECK: // %bb.0: // %b0 1191; CHECK-NEXT: { 1192; CHECK-NEXT: r2 = add(r0,#1152) 1193; CHECK-NEXT: r3 = add(r0,#1280) 1194; CHECK-NEXT: r4 = add(r0,#1408) 1195; CHECK-NEXT: allocframe(r29,#0):raw 1196; CHECK-NEXT: } 1197; CHECK-NEXT: { 1198; CHECK-NEXT: r1 = add(r30,#8) 1199; CHECK-NEXT: r7 = add(r0,#1024) 1200; CHECK-NEXT: r6 = add(r0,#1536) 1201; CHECK-NEXT: vmem(r2+#0) = v9 1202; CHECK-NEXT: } 1203; CHECK-NEXT: { 1204; CHECK-NEXT: r5 = add(r0,#1664) 1205; CHECK-NEXT: r3 = add(r0,#1920) 1206; CHECK-NEXT: r2 = add(r0,#2048) 1207; CHECK-NEXT: vmem(r3+#0) = v10 1208; CHECK-NEXT: } 1209; CHECK-NEXT: { 1210; CHECK-NEXT: r4 = add(r0,#1792) 1211; CHECK-NEXT: r29 = and(r29,#-128) 1212; CHECK-NEXT: v16 = vmem(r1+#0) 1213; CHECK-NEXT: vmem(r4+#0) = v11 1214; CHECK-NEXT: } 1215; CHECK-NEXT: { 1216; CHECK-NEXT: vmem(r0+#0) = v0 1217; CHECK-NEXT: } 1218; CHECK-NEXT: { 1219; CHECK-NEXT: vmem(r0+#1) = v1 1220; CHECK-NEXT: } 1221; CHECK-NEXT: { 1222; CHECK-NEXT: vmem(r7+#0) = v8 1223; CHECK-NEXT: } 1224; CHECK-NEXT: { 1225; CHECK-NEXT: vmem(r0+#2) = v2 1226; CHECK-NEXT: } 1227; CHECK-NEXT: { 1228; CHECK-NEXT: vmem(r0+#3) = v3 1229; CHECK-NEXT: } 1230; CHECK-NEXT: { 1231; CHECK-NEXT: vmem(r0+#4) = v4 1232; CHECK-NEXT: } 1233; CHECK-NEXT: { 1234; CHECK-NEXT: vmem(r6+#0) = v12 1235; CHECK-NEXT: } 1236; CHECK-NEXT: { 1237; CHECK-NEXT: vmem(r0+#5) = v5 1238; CHECK-NEXT: } 1239; CHECK-NEXT: { 1240; CHECK-NEXT: vmem(r5+#0) = v13 1241; CHECK-NEXT: } 1242; CHECK-NEXT: { 1243; CHECK-NEXT: vmem(r0+#6) = v6 1244; CHECK-NEXT: } 1245; CHECK-NEXT: { 1246; CHECK-NEXT: vmem(r4+#0) = v14 1247; CHECK-NEXT: } 1248; CHECK-NEXT: { 1249; CHECK-NEXT: vmem(r0+#7) = v7 1250; CHECK-NEXT: } 1251; CHECK-NEXT: { 1252; CHECK-NEXT: vmem(r3+#0) = v15 1253; CHECK-NEXT: } 1254; CHECK-NEXT: { 1255; CHECK-NEXT: vmem(r2+#0) = v16 1256; CHECK-NEXT: } 1257; CHECK-NEXT: { 1258; CHECK-NEXT: r31:30 = dealloc_return(r30):raw 1259; CHECK-NEXT: } 1260b0: 1261 %v0 = getelementptr <64 x half>, <64 x half>* %a17, i32 0 1262 store <64 x half> %a0, <64 x half>* %v0, align 128 1263 %v1 = getelementptr <64 x half>, <64 x half>* %a17, i32 1 1264 store <64 x half> %a1, <64 x half>* %v1, align 128 1265 %v2 = getelementptr <64 x half>, <64 x half>* %a17, i32 2 1266 store <64 x half> %a2, <64 x half>* %v2, align 128 1267 %v3 = getelementptr <64 x half>, <64 x half>* %a17, i32 3 1268 store <64 x half> %a3, <64 x half>* %v3, align 128 1269 %v4 = getelementptr <64 x half>, <64 x half>* %a17, i32 4 1270 store <64 x half> %a4, <64 x half>* %v4, align 128 1271 %v5 = getelementptr <64 x half>, <64 x half>* %a17, i32 5 1272 store <64 x half> %a5, <64 x half>* %v5, align 128 1273 %v6 = getelementptr <64 x half>, <64 x half>* %a17, i32 6 1274 store <64 x half> %a6, <64 x half>* %v6, align 128 1275 %v7 = getelementptr <64 x half>, <64 x half>* %a17, i32 7 1276 store <64 x half> %a7, <64 x half>* %v7, align 128 1277 %v8 = getelementptr <64 x half>, <64 x half>* %a17, i32 8 1278 store <64 x half> %a8, <64 x half>* %v8, align 128 1279 %v9 = getelementptr <64 x half>, <64 x half>* %a17, i32 9 1280 store <64 x half> %a9, <64 x half>* %v9, align 128 1281 %v10 = getelementptr <64 x half>, <64 x half>* %a17, i32 10 1282 store <64 x half> %a10, <64 x half>* %v10, align 128 1283 %v11 = getelementptr <64 x half>, <64 x half>* %a17, i32 11 1284 store <64 x half> %a11, <64 x half>* %v11, align 128 1285 %v12 = getelementptr <64 x half>, <64 x half>* %a17, i32 12 1286 store <64 x half> %a12, <64 x half>* %v12, align 128 1287 %v13 = getelementptr <64 x half>, <64 x half>* %a17, i32 13 1288 store <64 x half> %a13, <64 x half>* %v13, align 128 1289 %v14 = getelementptr <64 x half>, <64 x half>* %a17, i32 14 1290 store <64 x half> %a14, <64 x half>* %v14, align 128 1291 %v15 = getelementptr <64 x half>, <64 x half>* %a17, i32 15 1292 store <64 x half> %a15, <64 x half>* %v15, align 128 1293 %v16 = getelementptr <64 x half>, <64 x half>* %a17, i32 16 1294 store <64 x half> %a16, <64 x half>* %v16, align 128 1295 ret void 1296} 1297 1298define void @f20(<32 x float> %a0, <32 x float> %a1, <32 x float> %a2, <32 x float> %a3, <32 x float> %a4, <32 x float> %a5, <32 x float> %a6, <32 x float> %a7, <32 x float> %a8, <32 x float> %a9, <32 x float> %a10, <32 x float> %a11, <32 x float> %a12, <32 x float> %a13, <32 x float> %a14, <32 x float> %a15, <32 x float> %a16, <32 x float>* %a17) #0 { 1299; CHECK-LABEL: f20: 1300; CHECK: // %bb.0: // %b0 1301; CHECK-NEXT: { 1302; CHECK-NEXT: r2 = add(r0,#1152) 1303; CHECK-NEXT: r3 = add(r0,#1280) 1304; CHECK-NEXT: r4 = add(r0,#1408) 1305; CHECK-NEXT: allocframe(r29,#0):raw 1306; CHECK-NEXT: } 1307; CHECK-NEXT: { 1308; CHECK-NEXT: r1 = add(r30,#8) 1309; CHECK-NEXT: r7 = add(r0,#1024) 1310; CHECK-NEXT: r6 = add(r0,#1536) 1311; CHECK-NEXT: vmem(r2+#0) = v9 1312; CHECK-NEXT: } 1313; CHECK-NEXT: { 1314; CHECK-NEXT: r5 = add(r0,#1664) 1315; CHECK-NEXT: r3 = add(r0,#1920) 1316; CHECK-NEXT: r2 = add(r0,#2048) 1317; CHECK-NEXT: vmem(r3+#0) = v10 1318; CHECK-NEXT: } 1319; CHECK-NEXT: { 1320; CHECK-NEXT: r4 = add(r0,#1792) 1321; CHECK-NEXT: r29 = and(r29,#-128) 1322; CHECK-NEXT: v16 = vmem(r1+#0) 1323; CHECK-NEXT: vmem(r4+#0) = v11 1324; CHECK-NEXT: } 1325; CHECK-NEXT: { 1326; CHECK-NEXT: vmem(r0+#0) = v0 1327; CHECK-NEXT: } 1328; CHECK-NEXT: { 1329; CHECK-NEXT: vmem(r0+#1) = v1 1330; CHECK-NEXT: } 1331; CHECK-NEXT: { 1332; CHECK-NEXT: vmem(r7+#0) = v8 1333; CHECK-NEXT: } 1334; CHECK-NEXT: { 1335; CHECK-NEXT: vmem(r0+#2) = v2 1336; CHECK-NEXT: } 1337; CHECK-NEXT: { 1338; CHECK-NEXT: vmem(r0+#3) = v3 1339; CHECK-NEXT: } 1340; CHECK-NEXT: { 1341; CHECK-NEXT: vmem(r0+#4) = v4 1342; CHECK-NEXT: } 1343; CHECK-NEXT: { 1344; CHECK-NEXT: vmem(r6+#0) = v12 1345; CHECK-NEXT: } 1346; CHECK-NEXT: { 1347; CHECK-NEXT: vmem(r0+#5) = v5 1348; CHECK-NEXT: } 1349; CHECK-NEXT: { 1350; CHECK-NEXT: vmem(r5+#0) = v13 1351; CHECK-NEXT: } 1352; CHECK-NEXT: { 1353; CHECK-NEXT: vmem(r0+#6) = v6 1354; CHECK-NEXT: } 1355; CHECK-NEXT: { 1356; CHECK-NEXT: vmem(r4+#0) = v14 1357; CHECK-NEXT: } 1358; CHECK-NEXT: { 1359; CHECK-NEXT: vmem(r0+#7) = v7 1360; CHECK-NEXT: } 1361; CHECK-NEXT: { 1362; CHECK-NEXT: vmem(r3+#0) = v15 1363; CHECK-NEXT: } 1364; CHECK-NEXT: { 1365; CHECK-NEXT: vmem(r2+#0) = v16 1366; CHECK-NEXT: } 1367; CHECK-NEXT: { 1368; CHECK-NEXT: r31:30 = dealloc_return(r30):raw 1369; CHECK-NEXT: } 1370b0: 1371 %v0 = getelementptr <32 x float>, <32 x float>* %a17, i32 0 1372 store <32 x float> %a0, <32 x float>* %v0, align 128 1373 %v1 = getelementptr <32 x float>, <32 x float>* %a17, i32 1 1374 store <32 x float> %a1, <32 x float>* %v1, align 128 1375 %v2 = getelementptr <32 x float>, <32 x float>* %a17, i32 2 1376 store <32 x float> %a2, <32 x float>* %v2, align 128 1377 %v3 = getelementptr <32 x float>, <32 x float>* %a17, i32 3 1378 store <32 x float> %a3, <32 x float>* %v3, align 128 1379 %v4 = getelementptr <32 x float>, <32 x float>* %a17, i32 4 1380 store <32 x float> %a4, <32 x float>* %v4, align 128 1381 %v5 = getelementptr <32 x float>, <32 x float>* %a17, i32 5 1382 store <32 x float> %a5, <32 x float>* %v5, align 128 1383 %v6 = getelementptr <32 x float>, <32 x float>* %a17, i32 6 1384 store <32 x float> %a6, <32 x float>* %v6, align 128 1385 %v7 = getelementptr <32 x float>, <32 x float>* %a17, i32 7 1386 store <32 x float> %a7, <32 x float>* %v7, align 128 1387 %v8 = getelementptr <32 x float>, <32 x float>* %a17, i32 8 1388 store <32 x float> %a8, <32 x float>* %v8, align 128 1389 %v9 = getelementptr <32 x float>, <32 x float>* %a17, i32 9 1390 store <32 x float> %a9, <32 x float>* %v9, align 128 1391 %v10 = getelementptr <32 x float>, <32 x float>* %a17, i32 10 1392 store <32 x float> %a10, <32 x float>* %v10, align 128 1393 %v11 = getelementptr <32 x float>, <32 x float>* %a17, i32 11 1394 store <32 x float> %a11, <32 x float>* %v11, align 128 1395 %v12 = getelementptr <32 x float>, <32 x float>* %a17, i32 12 1396 store <32 x float> %a12, <32 x float>* %v12, align 128 1397 %v13 = getelementptr <32 x float>, <32 x float>* %a17, i32 13 1398 store <32 x float> %a13, <32 x float>* %v13, align 128 1399 %v14 = getelementptr <32 x float>, <32 x float>* %a17, i32 14 1400 store <32 x float> %a14, <32 x float>* %v14, align 128 1401 %v15 = getelementptr <32 x float>, <32 x float>* %a17, i32 15 1402 store <32 x float> %a15, <32 x float>* %v15, align 128 1403 %v16 = getelementptr <32 x float>, <32 x float>* %a17, i32 16 1404 store <32 x float> %a16, <32 x float>* %v16, align 128 1405 ret void 1406} 1407 1408define <128 x i8> @f21() #0 { 1409; CHECK-LABEL: f21: 1410; CHECK: // %bb.0: 1411; CHECK-NEXT: { 1412; CHECK-NEXT: v0 = vxor(v0,v0) 1413; CHECK-NEXT: jumpr r31 1414; CHECK-NEXT: } 1415 %v0 = insertelement <128 x i8> undef, i8 0, i32 0 1416 %v1 = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> zeroinitializer 1417 ret <128 x i8> %v1 1418} 1419 1420define <256 x i8> @f22() #0 { 1421; CHECK-LABEL: f22: 1422; CHECK: // %bb.0: 1423; CHECK-NEXT: { 1424; CHECK-NEXT: v1:0.w = vsub(v1:0.w,v1:0.w) 1425; CHECK-NEXT: jumpr r31 1426; CHECK-NEXT: } 1427 %v0 = insertelement <256 x i8> undef, i8 0, i32 0 1428 %v1 = shufflevector <256 x i8> %v0, <256 x i8> undef, <256 x i32> zeroinitializer 1429 ret <256 x i8> %v1 1430} 1431 1432define <64 x i16> @f23() #0 { 1433; CHECK-LABEL: f23: 1434; CHECK: // %bb.0: 1435; CHECK-NEXT: { 1436; CHECK-NEXT: v0 = vxor(v0,v0) 1437; CHECK-NEXT: jumpr r31 1438; CHECK-NEXT: } 1439 %v0 = insertelement <64 x i16> undef, i16 0, i32 0 1440 %v1 = shufflevector <64 x i16> %v0, <64 x i16> undef, <64 x i32> zeroinitializer 1441 ret <64 x i16> %v1 1442} 1443 1444define <128 x i16> @f24() #0 { 1445; CHECK-LABEL: f24: 1446; CHECK: // %bb.0: 1447; CHECK-NEXT: { 1448; CHECK-NEXT: v1:0.w = vsub(v1:0.w,v1:0.w) 1449; CHECK-NEXT: jumpr r31 1450; CHECK-NEXT: } 1451 %v0 = insertelement <128 x i16> undef, i16 0, i32 0 1452 %v1 = shufflevector <128 x i16> %v0, <128 x i16> undef, <128 x i32> zeroinitializer 1453 ret <128 x i16> %v1 1454} 1455 1456define <32 x i32> @f25() #0 { 1457; CHECK-LABEL: f25: 1458; CHECK: // %bb.0: 1459; CHECK-NEXT: { 1460; CHECK-NEXT: v0 = vxor(v0,v0) 1461; CHECK-NEXT: jumpr r31 1462; CHECK-NEXT: } 1463 %v0 = insertelement <32 x i32> undef, i32 0, i32 0 1464 %v1 = shufflevector <32 x i32> %v0, <32 x i32> undef, <32 x i32> zeroinitializer 1465 ret <32 x i32> %v1 1466} 1467 1468define <64 x i32> @f26() #0 { 1469; CHECK-LABEL: f26: 1470; CHECK: // %bb.0: 1471; CHECK-NEXT: { 1472; CHECK-NEXT: v1:0.w = vsub(v1:0.w,v1:0.w) 1473; CHECK-NEXT: jumpr r31 1474; CHECK-NEXT: } 1475 %v0 = insertelement <64 x i32> undef, i32 0, i32 0 1476 %v1 = shufflevector <64 x i32> %v0, <64 x i32> undef, <64 x i32> zeroinitializer 1477 ret <64 x i32> %v1 1478} 1479 1480define <64 x half> @f27() #0 { 1481; CHECK-LABEL: f27: 1482; CHECK: // %bb.0: 1483; CHECK-NEXT: { 1484; CHECK-NEXT: v0 = vxor(v0,v0) 1485; CHECK-NEXT: jumpr r31 1486; CHECK-NEXT: } 1487 %v0 = insertelement <64 x half> undef, half 0xH0, i32 0 1488 %v1 = shufflevector <64 x half> %v0, <64 x half> undef, <64 x i32> zeroinitializer 1489 ret <64 x half> %v1 1490} 1491 1492define <128 x half> @f28() #0 { 1493; CHECK-LABEL: f28: 1494; CHECK: // %bb.0: 1495; CHECK-NEXT: { 1496; CHECK-NEXT: v1:0.w = vsub(v1:0.w,v1:0.w) 1497; CHECK-NEXT: jumpr r31 1498; CHECK-NEXT: } 1499 %v0 = insertelement <128 x half> undef, half 0xH0, i32 0 1500 %v1 = shufflevector <128 x half> %v0, <128 x half> undef, <128 x i32> zeroinitializer 1501 ret <128 x half> %v1 1502} 1503 1504define <32 x float> @f29() #0 { 1505; CHECK-LABEL: f29: 1506; CHECK: // %bb.0: 1507; CHECK-NEXT: { 1508; CHECK-NEXT: v0 = vxor(v0,v0) 1509; CHECK-NEXT: jumpr r31 1510; CHECK-NEXT: } 1511 %v0 = insertelement <32 x float> undef, float 0.0, i32 0 1512 %v1 = shufflevector <32 x float> %v0, <32 x float> undef, <32 x i32> zeroinitializer 1513 ret <32 x float> %v1 1514} 1515 1516define <64 x float> @f30() #0 { 1517; CHECK-LABEL: f30: 1518; CHECK: // %bb.0: 1519; CHECK-NEXT: { 1520; CHECK-NEXT: v1:0.w = vsub(v1:0.w,v1:0.w) 1521; CHECK-NEXT: jumpr r31 1522; CHECK-NEXT: } 1523 %v0 = insertelement <64 x float> undef, float 0.0, i32 0 1524 %v1 = shufflevector <64 x float> %v0, <64 x float> undef, <64 x i32> zeroinitializer 1525 ret <64 x float> %v1 1526} 1527 1528attributes #0 = { nounwind "target-cpu"="hexagonv69" "target-features"="+hvxv69,+hvx-length128b,+hvx-qfloat" } 1529