1508 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=hexagon < %s | FileCheck %s3 4define void @f0(<128 x i8> %a0, ptr %a1) #0 {5; CHECK-LABEL: f0:6; CHECK: // %bb.0: // %b07; CHECK-NEXT: {8; CHECK-NEXT: jumpr r319; CHECK-NEXT: vmem(r0+#0) = v010; CHECK-NEXT: }11b0:12 store <128 x i8> %a0, ptr %a1, align 12813 ret void14}15 16define void @f1(<128 x i8> %a0, <128 x i8> %a1, ptr %a2) #0 {17; CHECK-LABEL: f1:18; CHECK: // %bb.0: // %b019; CHECK-NEXT: {20; CHECK-NEXT: vmem(r0+#0) = v021; CHECK-NEXT: }22; CHECK-NEXT: {23; CHECK-NEXT: jumpr r3124; CHECK-NEXT: vmem(r0+#1) = v125; CHECK-NEXT: }26b0:27 store <128 x i8> %a0, ptr %a2, align 12828 %v1 = getelementptr <128 x i8>, ptr %a2, i32 129 store <128 x i8> %a1, ptr %v1, align 12830 ret void31}32 33define void @f2(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, ptr %a3) #0 {34; CHECK-LABEL: f2:35; CHECK: // %bb.0: // %b036; CHECK-NEXT: {37; CHECK-NEXT: vmem(r0+#0) = v038; CHECK-NEXT: }39; CHECK-NEXT: {40; CHECK-NEXT: vmem(r0+#1) = v141; CHECK-NEXT: }42; CHECK-NEXT: {43; CHECK-NEXT: jumpr r3144; CHECK-NEXT: vmem(r0+#2) = v245; CHECK-NEXT: }46b0:47 store <128 x i8> %a0, ptr %a3, align 12848 %v1 = getelementptr <128 x i8>, ptr %a3, i32 149 store <128 x i8> %a1, ptr %v1, align 12850 %v2 = getelementptr <128 x i8>, ptr %a3, i32 251 store <128 x i8> %a2, ptr %v2, align 12852 ret void53}54 55define void @f3(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, ptr %a4) #0 {56; CHECK-LABEL: f3:57; CHECK: // %bb.0: // %b058; CHECK-NEXT: {59; CHECK-NEXT: vmem(r0+#0) = v060; CHECK-NEXT: }61; CHECK-NEXT: {62; CHECK-NEXT: vmem(r0+#1) = v163; CHECK-NEXT: }64; CHECK-NEXT: {65; CHECK-NEXT: vmem(r0+#2) = v266; CHECK-NEXT: }67; CHECK-NEXT: {68; CHECK-NEXT: jumpr r3169; CHECK-NEXT: vmem(r0+#3) = v370; CHECK-NEXT: }71b0:72 store <128 x i8> %a0, ptr %a4, align 12873 %v1 = getelementptr <128 x i8>, ptr %a4, i32 174 store <128 x i8> %a1, ptr %v1, align 12875 %v2 = getelementptr <128 x i8>, ptr %a4, i32 276 store <128 x i8> %a2, ptr %v2, align 12877 %v3 = getelementptr <128 x i8>, ptr %a4, i32 378 store <128 x i8> %a3, ptr %v3, align 12879 ret void80}81 82define void @f4(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, <128 x i8> %a4, ptr %a5) #0 {83; CHECK-LABEL: f4:84; CHECK: // %bb.0: // %b085; CHECK-NEXT: {86; CHECK-NEXT: vmem(r0+#0) = v087; CHECK-NEXT: }88; CHECK-NEXT: {89; CHECK-NEXT: vmem(r0+#1) = v190; CHECK-NEXT: }91; CHECK-NEXT: {92; CHECK-NEXT: vmem(r0+#2) = v293; CHECK-NEXT: }94; CHECK-NEXT: {95; CHECK-NEXT: vmem(r0+#3) = v396; CHECK-NEXT: }97; CHECK-NEXT: {98; CHECK-NEXT: jumpr r3199; CHECK-NEXT: vmem(r0+#4) = v4100; CHECK-NEXT: }101b0:102 store <128 x i8> %a0, ptr %a5, align 128103 %v1 = getelementptr <128 x i8>, ptr %a5, i32 1104 store <128 x i8> %a1, ptr %v1, align 128105 %v2 = getelementptr <128 x i8>, ptr %a5, i32 2106 store <128 x i8> %a2, ptr %v2, align 128107 %v3 = getelementptr <128 x i8>, ptr %a5, i32 3108 store <128 x i8> %a3, ptr %v3, align 128109 %v4 = getelementptr <128 x i8>, ptr %a5, i32 4110 store <128 x i8> %a4, ptr %v4, align 128111 ret void112}113 114define 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, ptr %a6) #0 {115; CHECK-LABEL: f5:116; CHECK: // %bb.0: // %b0117; CHECK-NEXT: {118; CHECK-NEXT: vmem(r0+#0) = v0119; CHECK-NEXT: }120; CHECK-NEXT: {121; CHECK-NEXT: vmem(r0+#1) = v1122; CHECK-NEXT: }123; CHECK-NEXT: {124; CHECK-NEXT: vmem(r0+#2) = v2125; CHECK-NEXT: }126; CHECK-NEXT: {127; CHECK-NEXT: vmem(r0+#3) = v3128; CHECK-NEXT: }129; CHECK-NEXT: {130; CHECK-NEXT: vmem(r0+#4) = v4131; CHECK-NEXT: }132; CHECK-NEXT: {133; CHECK-NEXT: jumpr r31134; CHECK-NEXT: vmem(r0+#5) = v5135; CHECK-NEXT: }136b0:137 store <128 x i8> %a0, ptr %a6, align 128138 %v1 = getelementptr <128 x i8>, ptr %a6, i32 1139 store <128 x i8> %a1, ptr %v1, align 128140 %v2 = getelementptr <128 x i8>, ptr %a6, i32 2141 store <128 x i8> %a2, ptr %v2, align 128142 %v3 = getelementptr <128 x i8>, ptr %a6, i32 3143 store <128 x i8> %a3, ptr %v3, align 128144 %v4 = getelementptr <128 x i8>, ptr %a6, i32 4145 store <128 x i8> %a4, ptr %v4, align 128146 %v5 = getelementptr <128 x i8>, ptr %a6, i32 5147 store <128 x i8> %a5, ptr %v5, align 128148 ret void149}150 151define 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, ptr %a7) #0 {152; CHECK-LABEL: f6:153; CHECK: // %bb.0: // %b0154; CHECK-NEXT: {155; CHECK-NEXT: vmem(r0+#0) = v0156; CHECK-NEXT: }157; CHECK-NEXT: {158; CHECK-NEXT: vmem(r0+#1) = v1159; CHECK-NEXT: }160; CHECK-NEXT: {161; CHECK-NEXT: vmem(r0+#2) = v2162; CHECK-NEXT: }163; CHECK-NEXT: {164; CHECK-NEXT: vmem(r0+#3) = v3165; CHECK-NEXT: }166; CHECK-NEXT: {167; CHECK-NEXT: vmem(r0+#4) = v4168; CHECK-NEXT: }169; CHECK-NEXT: {170; CHECK-NEXT: vmem(r0+#5) = v5171; CHECK-NEXT: }172; CHECK-NEXT: {173; CHECK-NEXT: jumpr r31174; CHECK-NEXT: vmem(r0+#6) = v6175; CHECK-NEXT: }176b0:177 store <128 x i8> %a0, ptr %a7, align 128178 %v1 = getelementptr <128 x i8>, ptr %a7, i32 1179 store <128 x i8> %a1, ptr %v1, align 128180 %v2 = getelementptr <128 x i8>, ptr %a7, i32 2181 store <128 x i8> %a2, ptr %v2, align 128182 %v3 = getelementptr <128 x i8>, ptr %a7, i32 3183 store <128 x i8> %a3, ptr %v3, align 128184 %v4 = getelementptr <128 x i8>, ptr %a7, i32 4185 store <128 x i8> %a4, ptr %v4, align 128186 %v5 = getelementptr <128 x i8>, ptr %a7, i32 5187 store <128 x i8> %a5, ptr %v5, align 128188 %v6 = getelementptr <128 x i8>, ptr %a7, i32 6189 store <128 x i8> %a6, ptr %v6, align 128190 ret void191}192 193define 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, ptr %a8) #0 {194; CHECK-LABEL: f7:195; CHECK: // %bb.0: // %b0196; CHECK-NEXT: {197; CHECK-NEXT: vmem(r0+#0) = v0198; CHECK-NEXT: }199; CHECK-NEXT: {200; CHECK-NEXT: vmem(r0+#1) = v1201; CHECK-NEXT: }202; CHECK-NEXT: {203; CHECK-NEXT: vmem(r0+#2) = v2204; CHECK-NEXT: }205; CHECK-NEXT: {206; CHECK-NEXT: vmem(r0+#3) = v3207; CHECK-NEXT: }208; CHECK-NEXT: {209; CHECK-NEXT: vmem(r0+#4) = v4210; CHECK-NEXT: }211; CHECK-NEXT: {212; CHECK-NEXT: vmem(r0+#5) = v5213; CHECK-NEXT: }214; CHECK-NEXT: {215; CHECK-NEXT: vmem(r0+#6) = v6216; CHECK-NEXT: }217; CHECK-NEXT: {218; CHECK-NEXT: jumpr r31219; CHECK-NEXT: vmem(r0+#7) = v7220; CHECK-NEXT: }221b0:222 store <128 x i8> %a0, ptr %a8, align 128223 %v1 = getelementptr <128 x i8>, ptr %a8, i32 1224 store <128 x i8> %a1, ptr %v1, align 128225 %v2 = getelementptr <128 x i8>, ptr %a8, i32 2226 store <128 x i8> %a2, ptr %v2, align 128227 %v3 = getelementptr <128 x i8>, ptr %a8, i32 3228 store <128 x i8> %a3, ptr %v3, align 128229 %v4 = getelementptr <128 x i8>, ptr %a8, i32 4230 store <128 x i8> %a4, ptr %v4, align 128231 %v5 = getelementptr <128 x i8>, ptr %a8, i32 5232 store <128 x i8> %a5, ptr %v5, align 128233 %v6 = getelementptr <128 x i8>, ptr %a8, i32 6234 store <128 x i8> %a6, ptr %v6, align 128235 %v7 = getelementptr <128 x i8>, ptr %a8, i32 7236 store <128 x i8> %a7, ptr %v7, align 128237 ret void238}239 240define 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, ptr %a9) #0 {241; CHECK-LABEL: f8:242; CHECK: // %bb.0: // %b0243; CHECK-NEXT: {244; CHECK-NEXT: r1 = add(r0,#1024)245; CHECK-NEXT: vmem(r0+#0) = v0246; CHECK-NEXT: }247; CHECK-NEXT: {248; CHECK-NEXT: vmem(r0+#1) = v1249; CHECK-NEXT: }250; CHECK-NEXT: {251; CHECK-NEXT: vmem(r0+#2) = v2252; CHECK-NEXT: }253; CHECK-NEXT: {254; CHECK-NEXT: vmem(r0+#3) = v3255; CHECK-NEXT: }256; CHECK-NEXT: {257; CHECK-NEXT: vmem(r0+#4) = v4258; CHECK-NEXT: }259; CHECK-NEXT: {260; CHECK-NEXT: vmem(r0+#5) = v5261; CHECK-NEXT: }262; CHECK-NEXT: {263; CHECK-NEXT: vmem(r0+#6) = v6264; CHECK-NEXT: }265; CHECK-NEXT: {266; CHECK-NEXT: vmem(r0+#7) = v7267; CHECK-NEXT: }268; CHECK-NEXT: {269; CHECK-NEXT: jumpr r31270; CHECK-NEXT: vmem(r1+#0) = v8271; CHECK-NEXT: }272b0:273 store <128 x i8> %a0, ptr %a9, align 128274 %v1 = getelementptr <128 x i8>, ptr %a9, i32 1275 store <128 x i8> %a1, ptr %v1, align 128276 %v2 = getelementptr <128 x i8>, ptr %a9, i32 2277 store <128 x i8> %a2, ptr %v2, align 128278 %v3 = getelementptr <128 x i8>, ptr %a9, i32 3279 store <128 x i8> %a3, ptr %v3, align 128280 %v4 = getelementptr <128 x i8>, ptr %a9, i32 4281 store <128 x i8> %a4, ptr %v4, align 128282 %v5 = getelementptr <128 x i8>, ptr %a9, i32 5283 store <128 x i8> %a5, ptr %v5, align 128284 %v6 = getelementptr <128 x i8>, ptr %a9, i32 6285 store <128 x i8> %a6, ptr %v6, align 128286 %v7 = getelementptr <128 x i8>, ptr %a9, i32 7287 store <128 x i8> %a7, ptr %v7, align 128288 %v8 = getelementptr <128 x i8>, ptr %a9, i32 8289 store <128 x i8> %a8, ptr %v8, align 128290 ret void291}292 293define 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, ptr %a10) #0 {294; CHECK-LABEL: f9:295; CHECK: // %bb.0: // %b0296; CHECK-NEXT: {297; CHECK-NEXT: r1 = add(r0,#1024)298; CHECK-NEXT: r2 = add(r0,#1152)299; CHECK-NEXT: vmem(r0+#0) = v0300; CHECK-NEXT: }301; CHECK-NEXT: {302; CHECK-NEXT: vmem(r0+#1) = v1303; CHECK-NEXT: }304; CHECK-NEXT: {305; CHECK-NEXT: vmem(r0+#2) = v2306; CHECK-NEXT: }307; CHECK-NEXT: {308; CHECK-NEXT: vmem(r0+#3) = v3309; CHECK-NEXT: }310; CHECK-NEXT: {311; CHECK-NEXT: vmem(r0+#4) = v4312; CHECK-NEXT: }313; CHECK-NEXT: {314; CHECK-NEXT: vmem(r0+#5) = v5315; CHECK-NEXT: }316; CHECK-NEXT: {317; CHECK-NEXT: vmem(r0+#6) = v6318; CHECK-NEXT: }319; CHECK-NEXT: {320; CHECK-NEXT: vmem(r0+#7) = v7321; CHECK-NEXT: }322; CHECK-NEXT: {323; CHECK-NEXT: vmem(r1+#0) = v8324; CHECK-NEXT: }325; CHECK-NEXT: {326; CHECK-NEXT: jumpr r31327; CHECK-NEXT: vmem(r2+#0) = v9328; CHECK-NEXT: }329b0:330 store <128 x i8> %a0, ptr %a10, align 128331 %v1 = getelementptr <128 x i8>, ptr %a10, i32 1332 store <128 x i8> %a1, ptr %v1, align 128333 %v2 = getelementptr <128 x i8>, ptr %a10, i32 2334 store <128 x i8> %a2, ptr %v2, align 128335 %v3 = getelementptr <128 x i8>, ptr %a10, i32 3336 store <128 x i8> %a3, ptr %v3, align 128337 %v4 = getelementptr <128 x i8>, ptr %a10, i32 4338 store <128 x i8> %a4, ptr %v4, align 128339 %v5 = getelementptr <128 x i8>, ptr %a10, i32 5340 store <128 x i8> %a5, ptr %v5, align 128341 %v6 = getelementptr <128 x i8>, ptr %a10, i32 6342 store <128 x i8> %a6, ptr %v6, align 128343 %v7 = getelementptr <128 x i8>, ptr %a10, i32 7344 store <128 x i8> %a7, ptr %v7, align 128345 %v8 = getelementptr <128 x i8>, ptr %a10, i32 8346 store <128 x i8> %a8, ptr %v8, align 128347 %v9 = getelementptr <128 x i8>, ptr %a10, i32 9348 store <128 x i8> %a9, ptr %v9, align 128349 ret void350}351 352define 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, ptr %a11) #0 {353; CHECK-LABEL: f10:354; CHECK: // %bb.0: // %b0355; CHECK-NEXT: {356; CHECK-NEXT: r1 = add(r0,#1024)357; CHECK-NEXT: r2 = add(r0,#1152)358; CHECK-NEXT: r3 = add(r0,#1280)359; CHECK-NEXT: vmem(r0+#0) = v0360; CHECK-NEXT: }361; CHECK-NEXT: {362; CHECK-NEXT: vmem(r0+#1) = v1363; CHECK-NEXT: }364; CHECK-NEXT: {365; CHECK-NEXT: vmem(r0+#2) = v2366; CHECK-NEXT: }367; CHECK-NEXT: {368; CHECK-NEXT: vmem(r0+#3) = v3369; CHECK-NEXT: }370; CHECK-NEXT: {371; CHECK-NEXT: vmem(r0+#4) = v4372; CHECK-NEXT: }373; CHECK-NEXT: {374; CHECK-NEXT: vmem(r0+#5) = v5375; CHECK-NEXT: }376; CHECK-NEXT: {377; CHECK-NEXT: vmem(r0+#6) = v6378; CHECK-NEXT: }379; CHECK-NEXT: {380; CHECK-NEXT: vmem(r0+#7) = v7381; CHECK-NEXT: }382; CHECK-NEXT: {383; CHECK-NEXT: vmem(r1+#0) = v8384; CHECK-NEXT: }385; CHECK-NEXT: {386; CHECK-NEXT: vmem(r2+#0) = v9387; CHECK-NEXT: }388; CHECK-NEXT: {389; CHECK-NEXT: jumpr r31390; CHECK-NEXT: vmem(r3+#0) = v10391; CHECK-NEXT: }392b0:393 store <128 x i8> %a0, ptr %a11, align 128394 %v1 = getelementptr <128 x i8>, ptr %a11, i32 1395 store <128 x i8> %a1, ptr %v1, align 128396 %v2 = getelementptr <128 x i8>, ptr %a11, i32 2397 store <128 x i8> %a2, ptr %v2, align 128398 %v3 = getelementptr <128 x i8>, ptr %a11, i32 3399 store <128 x i8> %a3, ptr %v3, align 128400 %v4 = getelementptr <128 x i8>, ptr %a11, i32 4401 store <128 x i8> %a4, ptr %v4, align 128402 %v5 = getelementptr <128 x i8>, ptr %a11, i32 5403 store <128 x i8> %a5, ptr %v5, align 128404 %v6 = getelementptr <128 x i8>, ptr %a11, i32 6405 store <128 x i8> %a6, ptr %v6, align 128406 %v7 = getelementptr <128 x i8>, ptr %a11, i32 7407 store <128 x i8> %a7, ptr %v7, align 128408 %v8 = getelementptr <128 x i8>, ptr %a11, i32 8409 store <128 x i8> %a8, ptr %v8, align 128410 %v9 = getelementptr <128 x i8>, ptr %a11, i32 9411 store <128 x i8> %a9, ptr %v9, align 128412 %v10 = getelementptr <128 x i8>, ptr %a11, i32 10413 store <128 x i8> %a10, ptr %v10, align 128414 ret void415}416 417define 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, ptr %a12) #0 {418; CHECK-LABEL: f11:419; CHECK: // %bb.0: // %b0420; CHECK-NEXT: {421; CHECK-NEXT: r1 = add(r0,#1024)422; CHECK-NEXT: r2 = add(r0,#1152)423; CHECK-NEXT: r3 = add(r0,#1280)424; CHECK-NEXT: r4 = add(r0,#1408)425; CHECK-NEXT: }426; CHECK-NEXT: {427; CHECK-NEXT: vmem(r0+#0) = v0428; CHECK-NEXT: }429; CHECK-NEXT: {430; CHECK-NEXT: vmem(r0+#1) = v1431; CHECK-NEXT: }432; CHECK-NEXT: {433; CHECK-NEXT: vmem(r0+#2) = v2434; CHECK-NEXT: }435; CHECK-NEXT: {436; CHECK-NEXT: vmem(r0+#3) = v3437; CHECK-NEXT: }438; CHECK-NEXT: {439; CHECK-NEXT: vmem(r0+#4) = v4440; CHECK-NEXT: }441; CHECK-NEXT: {442; CHECK-NEXT: vmem(r0+#5) = v5443; CHECK-NEXT: }444; CHECK-NEXT: {445; CHECK-NEXT: vmem(r0+#6) = v6446; CHECK-NEXT: }447; CHECK-NEXT: {448; CHECK-NEXT: vmem(r0+#7) = v7449; CHECK-NEXT: }450; CHECK-NEXT: {451; CHECK-NEXT: vmem(r1+#0) = v8452; CHECK-NEXT: }453; CHECK-NEXT: {454; CHECK-NEXT: vmem(r2+#0) = v9455; CHECK-NEXT: }456; CHECK-NEXT: {457; CHECK-NEXT: vmem(r3+#0) = v10458; CHECK-NEXT: }459; CHECK-NEXT: {460; CHECK-NEXT: jumpr r31461; CHECK-NEXT: vmem(r4+#0) = v11462; CHECK-NEXT: }463b0:464 store <128 x i8> %a0, ptr %a12, align 128465 %v1 = getelementptr <128 x i8>, ptr %a12, i32 1466 store <128 x i8> %a1, ptr %v1, align 128467 %v2 = getelementptr <128 x i8>, ptr %a12, i32 2468 store <128 x i8> %a2, ptr %v2, align 128469 %v3 = getelementptr <128 x i8>, ptr %a12, i32 3470 store <128 x i8> %a3, ptr %v3, align 128471 %v4 = getelementptr <128 x i8>, ptr %a12, i32 4472 store <128 x i8> %a4, ptr %v4, align 128473 %v5 = getelementptr <128 x i8>, ptr %a12, i32 5474 store <128 x i8> %a5, ptr %v5, align 128475 %v6 = getelementptr <128 x i8>, ptr %a12, i32 6476 store <128 x i8> %a6, ptr %v6, align 128477 %v7 = getelementptr <128 x i8>, ptr %a12, i32 7478 store <128 x i8> %a7, ptr %v7, align 128479 %v8 = getelementptr <128 x i8>, ptr %a12, i32 8480 store <128 x i8> %a8, ptr %v8, align 128481 %v9 = getelementptr <128 x i8>, ptr %a12, i32 9482 store <128 x i8> %a9, ptr %v9, align 128483 %v10 = getelementptr <128 x i8>, ptr %a12, i32 10484 store <128 x i8> %a10, ptr %v10, align 128485 %v11 = getelementptr <128 x i8>, ptr %a12, i32 11486 store <128 x i8> %a11, ptr %v11, align 128487 ret void488}489 490define 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, ptr %a13) #0 {491; CHECK-LABEL: f12:492; CHECK: // %bb.0: // %b0493; CHECK-NEXT: {494; CHECK-NEXT: r1 = add(r0,#1024)495; CHECK-NEXT: r2 = add(r0,#1152)496; CHECK-NEXT: r3 = add(r0,#1280)497; CHECK-NEXT: r4 = add(r0,#1408)498; CHECK-NEXT: }499; CHECK-NEXT: {500; CHECK-NEXT: r5 = add(r0,#1536)501; CHECK-NEXT: vmem(r0+#0) = v0502; CHECK-NEXT: }503; CHECK-NEXT: {504; CHECK-NEXT: vmem(r0+#1) = v1505; CHECK-NEXT: }506; CHECK-NEXT: {507; CHECK-NEXT: vmem(r0+#2) = v2508; CHECK-NEXT: }509; CHECK-NEXT: {510; CHECK-NEXT: vmem(r0+#3) = v3511; CHECK-NEXT: }512; CHECK-NEXT: {513; CHECK-NEXT: vmem(r0+#4) = v4514; CHECK-NEXT: }515; CHECK-NEXT: {516; CHECK-NEXT: vmem(r0+#5) = v5517; CHECK-NEXT: }518; CHECK-NEXT: {519; CHECK-NEXT: vmem(r0+#6) = v6520; CHECK-NEXT: }521; CHECK-NEXT: {522; CHECK-NEXT: vmem(r0+#7) = v7523; CHECK-NEXT: }524; CHECK-NEXT: {525; CHECK-NEXT: vmem(r1+#0) = v8526; CHECK-NEXT: }527; CHECK-NEXT: {528; CHECK-NEXT: vmem(r2+#0) = v9529; CHECK-NEXT: }530; CHECK-NEXT: {531; CHECK-NEXT: vmem(r3+#0) = v10532; CHECK-NEXT: }533; CHECK-NEXT: {534; CHECK-NEXT: vmem(r4+#0) = v11535; CHECK-NEXT: }536; CHECK-NEXT: {537; CHECK-NEXT: jumpr r31538; CHECK-NEXT: vmem(r5+#0) = v12539; CHECK-NEXT: }540b0:541 store <128 x i8> %a0, ptr %a13, align 128542 %v1 = getelementptr <128 x i8>, ptr %a13, i32 1543 store <128 x i8> %a1, ptr %v1, align 128544 %v2 = getelementptr <128 x i8>, ptr %a13, i32 2545 store <128 x i8> %a2, ptr %v2, align 128546 %v3 = getelementptr <128 x i8>, ptr %a13, i32 3547 store <128 x i8> %a3, ptr %v3, align 128548 %v4 = getelementptr <128 x i8>, ptr %a13, i32 4549 store <128 x i8> %a4, ptr %v4, align 128550 %v5 = getelementptr <128 x i8>, ptr %a13, i32 5551 store <128 x i8> %a5, ptr %v5, align 128552 %v6 = getelementptr <128 x i8>, ptr %a13, i32 6553 store <128 x i8> %a6, ptr %v6, align 128554 %v7 = getelementptr <128 x i8>, ptr %a13, i32 7555 store <128 x i8> %a7, ptr %v7, align 128556 %v8 = getelementptr <128 x i8>, ptr %a13, i32 8557 store <128 x i8> %a8, ptr %v8, align 128558 %v9 = getelementptr <128 x i8>, ptr %a13, i32 9559 store <128 x i8> %a9, ptr %v9, align 128560 %v10 = getelementptr <128 x i8>, ptr %a13, i32 10561 store <128 x i8> %a10, ptr %v10, align 128562 %v11 = getelementptr <128 x i8>, ptr %a13, i32 11563 store <128 x i8> %a11, ptr %v11, align 128564 %v12 = getelementptr <128 x i8>, ptr %a13, i32 12565 store <128 x i8> %a12, ptr %v12, align 128566 ret void567}568 569define 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, ptr %a14) #0 {570; CHECK-LABEL: f13:571; CHECK: // %bb.0: // %b0572; CHECK-NEXT: {573; CHECK-NEXT: r2 = add(r0,#1152)574; CHECK-NEXT: r3 = add(r0,#1280)575; CHECK-NEXT: r1 = add(r0,#1024)576; CHECK-NEXT: r4 = add(r0,#1408)577; CHECK-NEXT: }578; CHECK-NEXT: {579; CHECK-NEXT: r2 = add(r0,#1664)580; CHECK-NEXT: vmem(r2+#0) = v9581; CHECK-NEXT: }582; CHECK-NEXT: {583; CHECK-NEXT: r3 = add(r0,#1536)584; CHECK-NEXT: vmem(r3+#0) = v10585; CHECK-NEXT: }586; CHECK-NEXT: {587; CHECK-NEXT: vmem(r0+#0) = v0588; CHECK-NEXT: }589; CHECK-NEXT: {590; CHECK-NEXT: vmem(r0+#1) = v1591; CHECK-NEXT: }592; CHECK-NEXT: {593; CHECK-NEXT: vmem(r1+#0) = v8594; CHECK-NEXT: }595; CHECK-NEXT: {596; CHECK-NEXT: vmem(r0+#2) = v2597; CHECK-NEXT: }598; CHECK-NEXT: {599; CHECK-NEXT: vmem(r0+#3) = v3600; CHECK-NEXT: }601; CHECK-NEXT: {602; CHECK-NEXT: vmem(r0+#4) = v4603; CHECK-NEXT: }604; CHECK-NEXT: {605; CHECK-NEXT: vmem(r0+#5) = v5606; CHECK-NEXT: }607; CHECK-NEXT: {608; CHECK-NEXT: vmem(r0+#6) = v6609; CHECK-NEXT: }610; CHECK-NEXT: {611; CHECK-NEXT: vmem(r4+#0) = v11612; CHECK-NEXT: }613; CHECK-NEXT: {614; CHECK-NEXT: vmem(r0+#7) = v7615; CHECK-NEXT: }616; CHECK-NEXT: {617; CHECK-NEXT: vmem(r3+#0) = v12618; CHECK-NEXT: }619; CHECK-NEXT: {620; CHECK-NEXT: jumpr r31621; CHECK-NEXT: vmem(r2+#0) = v13622; CHECK-NEXT: }623b0:624 store <128 x i8> %a0, ptr %a14, align 128625 %v1 = getelementptr <128 x i8>, ptr %a14, i32 1626 store <128 x i8> %a1, ptr %v1, align 128627 %v2 = getelementptr <128 x i8>, ptr %a14, i32 2628 store <128 x i8> %a2, ptr %v2, align 128629 %v3 = getelementptr <128 x i8>, ptr %a14, i32 3630 store <128 x i8> %a3, ptr %v3, align 128631 %v4 = getelementptr <128 x i8>, ptr %a14, i32 4632 store <128 x i8> %a4, ptr %v4, align 128633 %v5 = getelementptr <128 x i8>, ptr %a14, i32 5634 store <128 x i8> %a5, ptr %v5, align 128635 %v6 = getelementptr <128 x i8>, ptr %a14, i32 6636 store <128 x i8> %a6, ptr %v6, align 128637 %v7 = getelementptr <128 x i8>, ptr %a14, i32 7638 store <128 x i8> %a7, ptr %v7, align 128639 %v8 = getelementptr <128 x i8>, ptr %a14, i32 8640 store <128 x i8> %a8, ptr %v8, align 128641 %v9 = getelementptr <128 x i8>, ptr %a14, i32 9642 store <128 x i8> %a9, ptr %v9, align 128643 %v10 = getelementptr <128 x i8>, ptr %a14, i32 10644 store <128 x i8> %a10, ptr %v10, align 128645 %v11 = getelementptr <128 x i8>, ptr %a14, i32 11646 store <128 x i8> %a11, ptr %v11, align 128647 %v12 = getelementptr <128 x i8>, ptr %a14, i32 12648 store <128 x i8> %a12, ptr %v12, align 128649 %v13 = getelementptr <128 x i8>, ptr %a14, i32 13650 store <128 x i8> %a13, ptr %v13, align 128651 ret void652}653 654define 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, ptr %a15) #0 {655; CHECK-LABEL: f14:656; CHECK: // %bb.0: // %b0657; CHECK-NEXT: {658; CHECK-NEXT: r2 = add(r0,#1152)659; CHECK-NEXT: r3 = add(r0,#1280)660; CHECK-NEXT: r4 = add(r0,#1408)661; CHECK-NEXT: r1 = add(r0,#1024)662; CHECK-NEXT: }663; CHECK-NEXT: {664; CHECK-NEXT: r2 = add(r0,#1792)665; CHECK-NEXT: vmem(r2+#0) = v9666; CHECK-NEXT: }667; CHECK-NEXT: {668; CHECK-NEXT: r3 = add(r0,#1664)669; CHECK-NEXT: vmem(r3+#0) = v10670; CHECK-NEXT: }671; CHECK-NEXT: {672; CHECK-NEXT: r4 = add(r0,#1536)673; CHECK-NEXT: vmem(r4+#0) = v11674; CHECK-NEXT: }675; CHECK-NEXT: {676; CHECK-NEXT: vmem(r0+#0) = v0677; CHECK-NEXT: }678; CHECK-NEXT: {679; CHECK-NEXT: vmem(r1+#0) = v8680; CHECK-NEXT: }681; CHECK-NEXT: {682; CHECK-NEXT: vmem(r0+#1) = v1683; CHECK-NEXT: }684; CHECK-NEXT: {685; CHECK-NEXT: vmem(r0+#2) = v2686; CHECK-NEXT: }687; CHECK-NEXT: {688; CHECK-NEXT: vmem(r0+#3) = v3689; CHECK-NEXT: }690; CHECK-NEXT: {691; CHECK-NEXT: vmem(r0+#4) = v4692; CHECK-NEXT: }693; CHECK-NEXT: {694; CHECK-NEXT: vmem(r0+#5) = v5695; CHECK-NEXT: }696; CHECK-NEXT: {697; CHECK-NEXT: vmem(r0+#6) = v6698; CHECK-NEXT: }699; CHECK-NEXT: {700; CHECK-NEXT: vmem(r4+#0) = v12701; CHECK-NEXT: }702; CHECK-NEXT: {703; CHECK-NEXT: vmem(r0+#7) = v7704; CHECK-NEXT: }705; CHECK-NEXT: {706; CHECK-NEXT: vmem(r3+#0) = v13707; CHECK-NEXT: }708; CHECK-NEXT: {709; CHECK-NEXT: jumpr r31710; CHECK-NEXT: vmem(r2+#0) = v14711; CHECK-NEXT: }712b0:713 store <128 x i8> %a0, ptr %a15, align 128714 %v1 = getelementptr <128 x i8>, ptr %a15, i32 1715 store <128 x i8> %a1, ptr %v1, align 128716 %v2 = getelementptr <128 x i8>, ptr %a15, i32 2717 store <128 x i8> %a2, ptr %v2, align 128718 %v3 = getelementptr <128 x i8>, ptr %a15, i32 3719 store <128 x i8> %a3, ptr %v3, align 128720 %v4 = getelementptr <128 x i8>, ptr %a15, i32 4721 store <128 x i8> %a4, ptr %v4, align 128722 %v5 = getelementptr <128 x i8>, ptr %a15, i32 5723 store <128 x i8> %a5, ptr %v5, align 128724 %v6 = getelementptr <128 x i8>, ptr %a15, i32 6725 store <128 x i8> %a6, ptr %v6, align 128726 %v7 = getelementptr <128 x i8>, ptr %a15, i32 7727 store <128 x i8> %a7, ptr %v7, align 128728 %v8 = getelementptr <128 x i8>, ptr %a15, i32 8729 store <128 x i8> %a8, ptr %v8, align 128730 %v9 = getelementptr <128 x i8>, ptr %a15, i32 9731 store <128 x i8> %a9, ptr %v9, align 128732 %v10 = getelementptr <128 x i8>, ptr %a15, i32 10733 store <128 x i8> %a10, ptr %v10, align 128734 %v11 = getelementptr <128 x i8>, ptr %a15, i32 11735 store <128 x i8> %a11, ptr %v11, align 128736 %v12 = getelementptr <128 x i8>, ptr %a15, i32 12737 store <128 x i8> %a12, ptr %v12, align 128738 %v13 = getelementptr <128 x i8>, ptr %a15, i32 13739 store <128 x i8> %a13, ptr %v13, align 128740 %v14 = getelementptr <128 x i8>, ptr %a15, i32 14741 store <128 x i8> %a14, ptr %v14, align 128742 ret void743}744 745define 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, ptr %a16) #0 {746; CHECK-LABEL: f15:747; CHECK: // %bb.0: // %b0748; CHECK-NEXT: {749; CHECK-NEXT: r2 = add(r0,#1152)750; CHECK-NEXT: r3 = add(r0,#1280)751; CHECK-NEXT: r1 = add(r0,#1024)752; CHECK-NEXT: r6 = add(r0,#1408)753; CHECK-NEXT: }754; CHECK-NEXT: {755; CHECK-NEXT: r5 = add(r0,#1536)756; CHECK-NEXT: r4 = add(r0,#1664)757; CHECK-NEXT: r2 = add(r0,#1920)758; CHECK-NEXT: vmem(r2+#0) = v9759; CHECK-NEXT: }760; CHECK-NEXT: {761; CHECK-NEXT: r3 = add(r0,#1792)762; CHECK-NEXT: vmem(r3+#0) = v10763; CHECK-NEXT: }764; CHECK-NEXT: {765; CHECK-NEXT: vmem(r0+#0) = v0766; CHECK-NEXT: }767; CHECK-NEXT: {768; CHECK-NEXT: vmem(r0+#1) = v1769; CHECK-NEXT: }770; CHECK-NEXT: {771; CHECK-NEXT: vmem(r1+#0) = v8772; CHECK-NEXT: }773; CHECK-NEXT: {774; CHECK-NEXT: vmem(r0+#2) = v2775; CHECK-NEXT: }776; CHECK-NEXT: {777; CHECK-NEXT: vmem(r0+#3) = v3778; CHECK-NEXT: }779; CHECK-NEXT: {780; CHECK-NEXT: vmem(r0+#4) = v4781; CHECK-NEXT: }782; CHECK-NEXT: {783; CHECK-NEXT: vmem(r6+#0) = v11784; CHECK-NEXT: }785; CHECK-NEXT: {786; CHECK-NEXT: vmem(r0+#5) = v5787; CHECK-NEXT: }788; CHECK-NEXT: {789; CHECK-NEXT: vmem(r5+#0) = v12790; CHECK-NEXT: }791; CHECK-NEXT: {792; CHECK-NEXT: vmem(r0+#6) = v6793; CHECK-NEXT: }794; CHECK-NEXT: {795; CHECK-NEXT: vmem(r4+#0) = v13796; CHECK-NEXT: }797; CHECK-NEXT: {798; CHECK-NEXT: vmem(r0+#7) = v7799; CHECK-NEXT: }800; CHECK-NEXT: {801; CHECK-NEXT: vmem(r3+#0) = v14802; CHECK-NEXT: }803; CHECK-NEXT: {804; CHECK-NEXT: jumpr r31805; CHECK-NEXT: vmem(r2+#0) = v15806; CHECK-NEXT: }807b0:808 store <128 x i8> %a0, ptr %a16, align 128809 %v1 = getelementptr <128 x i8>, ptr %a16, i32 1810 store <128 x i8> %a1, ptr %v1, align 128811 %v2 = getelementptr <128 x i8>, ptr %a16, i32 2812 store <128 x i8> %a2, ptr %v2, align 128813 %v3 = getelementptr <128 x i8>, ptr %a16, i32 3814 store <128 x i8> %a3, ptr %v3, align 128815 %v4 = getelementptr <128 x i8>, ptr %a16, i32 4816 store <128 x i8> %a4, ptr %v4, align 128817 %v5 = getelementptr <128 x i8>, ptr %a16, i32 5818 store <128 x i8> %a5, ptr %v5, align 128819 %v6 = getelementptr <128 x i8>, ptr %a16, i32 6820 store <128 x i8> %a6, ptr %v6, align 128821 %v7 = getelementptr <128 x i8>, ptr %a16, i32 7822 store <128 x i8> %a7, ptr %v7, align 128823 %v8 = getelementptr <128 x i8>, ptr %a16, i32 8824 store <128 x i8> %a8, ptr %v8, align 128825 %v9 = getelementptr <128 x i8>, ptr %a16, i32 9826 store <128 x i8> %a9, ptr %v9, align 128827 %v10 = getelementptr <128 x i8>, ptr %a16, i32 10828 store <128 x i8> %a10, ptr %v10, align 128829 %v11 = getelementptr <128 x i8>, ptr %a16, i32 11830 store <128 x i8> %a11, ptr %v11, align 128831 %v12 = getelementptr <128 x i8>, ptr %a16, i32 12832 store <128 x i8> %a12, ptr %v12, align 128833 %v13 = getelementptr <128 x i8>, ptr %a16, i32 13834 store <128 x i8> %a13, ptr %v13, align 128835 %v14 = getelementptr <128 x i8>, ptr %a16, i32 14836 store <128 x i8> %a14, ptr %v14, align 128837 %v15 = getelementptr <128 x i8>, ptr %a16, i32 15838 store <128 x i8> %a15, ptr %v15, align 128839 ret void840}841 842define 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, ptr %a17) #0 {843; CHECK-LABEL: f16:844; CHECK: // %bb.0: // %b0845; CHECK-NEXT: {846; CHECK-NEXT: r2 = add(r0,#1152)847; CHECK-NEXT: r3 = add(r0,#1280)848; CHECK-NEXT: r4 = add(r0,#1408)849; CHECK-NEXT: allocframe(r29,#0):raw850; CHECK-NEXT: }851; CHECK-NEXT: {852; CHECK-NEXT: r1 = add(r30,#8)853; CHECK-NEXT: r7 = add(r0,#1024)854; CHECK-NEXT: r6 = add(r0,#1536)855; CHECK-NEXT: vmem(r2+#0) = v9856; CHECK-NEXT: }857; CHECK-NEXT: {858; CHECK-NEXT: r5 = add(r0,#1664)859; CHECK-NEXT: r3 = add(r0,#1920)860; CHECK-NEXT: r2 = add(r0,#2048)861; CHECK-NEXT: vmem(r3+#0) = v10862; CHECK-NEXT: }863; CHECK-NEXT: {864; CHECK-NEXT: r4 = add(r0,#1792)865; CHECK-NEXT: r29 = and(r29,#-128)866; CHECK-NEXT: v16 = vmem(r1+#0)867; CHECK-NEXT: vmem(r4+#0) = v11868; CHECK-NEXT: }869; CHECK-NEXT: {870; CHECK-NEXT: vmem(r0+#0) = v0871; CHECK-NEXT: }872; CHECK-NEXT: {873; CHECK-NEXT: vmem(r0+#1) = v1874; CHECK-NEXT: }875; CHECK-NEXT: {876; CHECK-NEXT: vmem(r7+#0) = v8877; CHECK-NEXT: }878; CHECK-NEXT: {879; CHECK-NEXT: vmem(r0+#2) = v2880; CHECK-NEXT: }881; CHECK-NEXT: {882; CHECK-NEXT: vmem(r0+#3) = v3883; CHECK-NEXT: }884; CHECK-NEXT: {885; CHECK-NEXT: vmem(r0+#4) = v4886; CHECK-NEXT: }887; CHECK-NEXT: {888; CHECK-NEXT: vmem(r6+#0) = v12889; CHECK-NEXT: }890; CHECK-NEXT: {891; CHECK-NEXT: vmem(r0+#5) = v5892; CHECK-NEXT: }893; CHECK-NEXT: {894; CHECK-NEXT: vmem(r5+#0) = v13895; CHECK-NEXT: }896; CHECK-NEXT: {897; CHECK-NEXT: vmem(r0+#6) = v6898; CHECK-NEXT: }899; CHECK-NEXT: {900; CHECK-NEXT: vmem(r4+#0) = v14901; CHECK-NEXT: }902; CHECK-NEXT: {903; CHECK-NEXT: vmem(r0+#7) = v7904; CHECK-NEXT: }905; CHECK-NEXT: {906; CHECK-NEXT: vmem(r3+#0) = v15907; CHECK-NEXT: }908; CHECK-NEXT: {909; CHECK-NEXT: vmem(r2+#0) = v16910; CHECK-NEXT: }911; CHECK-NEXT: {912; CHECK-NEXT: r31:30 = dealloc_return(r30):raw913; CHECK-NEXT: }914b0:915 store <128 x i8> %a0, ptr %a17, align 128916 %v1 = getelementptr <128 x i8>, ptr %a17, i32 1917 store <128 x i8> %a1, ptr %v1, align 128918 %v2 = getelementptr <128 x i8>, ptr %a17, i32 2919 store <128 x i8> %a2, ptr %v2, align 128920 %v3 = getelementptr <128 x i8>, ptr %a17, i32 3921 store <128 x i8> %a3, ptr %v3, align 128922 %v4 = getelementptr <128 x i8>, ptr %a17, i32 4923 store <128 x i8> %a4, ptr %v4, align 128924 %v5 = getelementptr <128 x i8>, ptr %a17, i32 5925 store <128 x i8> %a5, ptr %v5, align 128926 %v6 = getelementptr <128 x i8>, ptr %a17, i32 6927 store <128 x i8> %a6, ptr %v6, align 128928 %v7 = getelementptr <128 x i8>, ptr %a17, i32 7929 store <128 x i8> %a7, ptr %v7, align 128930 %v8 = getelementptr <128 x i8>, ptr %a17, i32 8931 store <128 x i8> %a8, ptr %v8, align 128932 %v9 = getelementptr <128 x i8>, ptr %a17, i32 9933 store <128 x i8> %a9, ptr %v9, align 128934 %v10 = getelementptr <128 x i8>, ptr %a17, i32 10935 store <128 x i8> %a10, ptr %v10, align 128936 %v11 = getelementptr <128 x i8>, ptr %a17, i32 11937 store <128 x i8> %a11, ptr %v11, align 128938 %v12 = getelementptr <128 x i8>, ptr %a17, i32 12939 store <128 x i8> %a12, ptr %v12, align 128940 %v13 = getelementptr <128 x i8>, ptr %a17, i32 13941 store <128 x i8> %a13, ptr %v13, align 128942 %v14 = getelementptr <128 x i8>, ptr %a17, i32 14943 store <128 x i8> %a14, ptr %v14, align 128944 %v15 = getelementptr <128 x i8>, ptr %a17, i32 15945 store <128 x i8> %a15, ptr %v15, align 128946 %v16 = getelementptr <128 x i8>, ptr %a17, i32 16947 store <128 x i8> %a16, ptr %v16, align 128948 ret void949}950 951define 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, ptr %a17) #0 {952; CHECK-LABEL: f17:953; CHECK: // %bb.0: // %b0954; CHECK-NEXT: {955; CHECK-NEXT: r2 = add(r0,#1152)956; CHECK-NEXT: r3 = add(r0,#1280)957; CHECK-NEXT: r4 = add(r0,#1408)958; CHECK-NEXT: allocframe(r29,#0):raw959; CHECK-NEXT: }960; CHECK-NEXT: {961; CHECK-NEXT: r1 = add(r30,#8)962; CHECK-NEXT: r7 = add(r0,#1024)963; CHECK-NEXT: r6 = add(r0,#1536)964; CHECK-NEXT: vmem(r2+#0) = v9965; CHECK-NEXT: }966; CHECK-NEXT: {967; CHECK-NEXT: r5 = add(r0,#1664)968; CHECK-NEXT: r3 = add(r0,#1920)969; CHECK-NEXT: r2 = add(r0,#2048)970; CHECK-NEXT: vmem(r3+#0) = v10971; CHECK-NEXT: }972; CHECK-NEXT: {973; CHECK-NEXT: r4 = add(r0,#1792)974; CHECK-NEXT: r29 = and(r29,#-128)975; CHECK-NEXT: v16 = vmem(r1+#0)976; CHECK-NEXT: vmem(r4+#0) = v11977; CHECK-NEXT: }978; CHECK-NEXT: {979; CHECK-NEXT: vmem(r0+#0) = v0980; CHECK-NEXT: }981; CHECK-NEXT: {982; CHECK-NEXT: vmem(r0+#1) = v1983; CHECK-NEXT: }984; CHECK-NEXT: {985; CHECK-NEXT: vmem(r7+#0) = v8986; CHECK-NEXT: }987; CHECK-NEXT: {988; CHECK-NEXT: vmem(r0+#2) = v2989; CHECK-NEXT: }990; CHECK-NEXT: {991; CHECK-NEXT: vmem(r0+#3) = v3992; CHECK-NEXT: }993; CHECK-NEXT: {994; CHECK-NEXT: vmem(r0+#4) = v4995; CHECK-NEXT: }996; CHECK-NEXT: {997; CHECK-NEXT: vmem(r6+#0) = v12998; CHECK-NEXT: }999; CHECK-NEXT: {1000; CHECK-NEXT: vmem(r0+#5) = v51001; CHECK-NEXT: }1002; CHECK-NEXT: {1003; CHECK-NEXT: vmem(r5+#0) = v131004; CHECK-NEXT: }1005; CHECK-NEXT: {1006; CHECK-NEXT: vmem(r0+#6) = v61007; CHECK-NEXT: }1008; CHECK-NEXT: {1009; CHECK-NEXT: vmem(r4+#0) = v141010; CHECK-NEXT: }1011; CHECK-NEXT: {1012; CHECK-NEXT: vmem(r0+#7) = v71013; CHECK-NEXT: }1014; CHECK-NEXT: {1015; CHECK-NEXT: vmem(r3+#0) = v151016; CHECK-NEXT: }1017; CHECK-NEXT: {1018; CHECK-NEXT: vmem(r2+#0) = v161019; CHECK-NEXT: }1020; CHECK-NEXT: {1021; CHECK-NEXT: r31:30 = dealloc_return(r30):raw1022; CHECK-NEXT: }1023b0:1024 store <64 x i16> %a0, ptr %a17, align 1281025 %v1 = getelementptr <64 x i16>, ptr %a17, i32 11026 store <64 x i16> %a1, ptr %v1, align 1281027 %v2 = getelementptr <64 x i16>, ptr %a17, i32 21028 store <64 x i16> %a2, ptr %v2, align 1281029 %v3 = getelementptr <64 x i16>, ptr %a17, i32 31030 store <64 x i16> %a3, ptr %v3, align 1281031 %v4 = getelementptr <64 x i16>, ptr %a17, i32 41032 store <64 x i16> %a4, ptr %v4, align 1281033 %v5 = getelementptr <64 x i16>, ptr %a17, i32 51034 store <64 x i16> %a5, ptr %v5, align 1281035 %v6 = getelementptr <64 x i16>, ptr %a17, i32 61036 store <64 x i16> %a6, ptr %v6, align 1281037 %v7 = getelementptr <64 x i16>, ptr %a17, i32 71038 store <64 x i16> %a7, ptr %v7, align 1281039 %v8 = getelementptr <64 x i16>, ptr %a17, i32 81040 store <64 x i16> %a8, ptr %v8, align 1281041 %v9 = getelementptr <64 x i16>, ptr %a17, i32 91042 store <64 x i16> %a9, ptr %v9, align 1281043 %v10 = getelementptr <64 x i16>, ptr %a17, i32 101044 store <64 x i16> %a10, ptr %v10, align 1281045 %v11 = getelementptr <64 x i16>, ptr %a17, i32 111046 store <64 x i16> %a11, ptr %v11, align 1281047 %v12 = getelementptr <64 x i16>, ptr %a17, i32 121048 store <64 x i16> %a12, ptr %v12, align 1281049 %v13 = getelementptr <64 x i16>, ptr %a17, i32 131050 store <64 x i16> %a13, ptr %v13, align 1281051 %v14 = getelementptr <64 x i16>, ptr %a17, i32 141052 store <64 x i16> %a14, ptr %v14, align 1281053 %v15 = getelementptr <64 x i16>, ptr %a17, i32 151054 store <64 x i16> %a15, ptr %v15, align 1281055 %v16 = getelementptr <64 x i16>, ptr %a17, i32 161056 store <64 x i16> %a16, ptr %v16, align 1281057 ret void1058}1059 1060define 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, ptr %a17) #0 {1061; CHECK-LABEL: f18:1062; CHECK: // %bb.0: // %b01063; CHECK-NEXT: {1064; CHECK-NEXT: r2 = add(r0,#1152)1065; CHECK-NEXT: r3 = add(r0,#1280)1066; CHECK-NEXT: r4 = add(r0,#1408)1067; CHECK-NEXT: allocframe(r29,#0):raw1068; CHECK-NEXT: }1069; CHECK-NEXT: {1070; CHECK-NEXT: r1 = add(r30,#8)1071; CHECK-NEXT: r7 = add(r0,#1024)1072; CHECK-NEXT: r6 = add(r0,#1536)1073; CHECK-NEXT: vmem(r2+#0) = v91074; CHECK-NEXT: }1075; CHECK-NEXT: {1076; CHECK-NEXT: r5 = add(r0,#1664)1077; CHECK-NEXT: r3 = add(r0,#1920)1078; CHECK-NEXT: r2 = add(r0,#2048)1079; CHECK-NEXT: vmem(r3+#0) = v101080; CHECK-NEXT: }1081; CHECK-NEXT: {1082; CHECK-NEXT: r4 = add(r0,#1792)1083; CHECK-NEXT: r29 = and(r29,#-128)1084; CHECK-NEXT: v16 = vmem(r1+#0)1085; CHECK-NEXT: vmem(r4+#0) = v111086; CHECK-NEXT: }1087; CHECK-NEXT: {1088; CHECK-NEXT: vmem(r0+#0) = v01089; CHECK-NEXT: }1090; CHECK-NEXT: {1091; CHECK-NEXT: vmem(r0+#1) = v11092; CHECK-NEXT: }1093; CHECK-NEXT: {1094; CHECK-NEXT: vmem(r7+#0) = v81095; CHECK-NEXT: }1096; CHECK-NEXT: {1097; CHECK-NEXT: vmem(r0+#2) = v21098; CHECK-NEXT: }1099; CHECK-NEXT: {1100; CHECK-NEXT: vmem(r0+#3) = v31101; CHECK-NEXT: }1102; CHECK-NEXT: {1103; CHECK-NEXT: vmem(r0+#4) = v41104; CHECK-NEXT: }1105; CHECK-NEXT: {1106; CHECK-NEXT: vmem(r6+#0) = v121107; CHECK-NEXT: }1108; CHECK-NEXT: {1109; CHECK-NEXT: vmem(r0+#5) = v51110; CHECK-NEXT: }1111; CHECK-NEXT: {1112; CHECK-NEXT: vmem(r5+#0) = v131113; CHECK-NEXT: }1114; CHECK-NEXT: {1115; CHECK-NEXT: vmem(r0+#6) = v61116; CHECK-NEXT: }1117; CHECK-NEXT: {1118; CHECK-NEXT: vmem(r4+#0) = v141119; CHECK-NEXT: }1120; CHECK-NEXT: {1121; CHECK-NEXT: vmem(r0+#7) = v71122; CHECK-NEXT: }1123; CHECK-NEXT: {1124; CHECK-NEXT: vmem(r3+#0) = v151125; CHECK-NEXT: }1126; CHECK-NEXT: {1127; CHECK-NEXT: vmem(r2+#0) = v161128; CHECK-NEXT: }1129; CHECK-NEXT: {1130; CHECK-NEXT: r31:30 = dealloc_return(r30):raw1131; CHECK-NEXT: }1132b0:1133 store <32 x i32> %a0, ptr %a17, align 1281134 %v1 = getelementptr <32 x i32>, ptr %a17, i32 11135 store <32 x i32> %a1, ptr %v1, align 1281136 %v2 = getelementptr <32 x i32>, ptr %a17, i32 21137 store <32 x i32> %a2, ptr %v2, align 1281138 %v3 = getelementptr <32 x i32>, ptr %a17, i32 31139 store <32 x i32> %a3, ptr %v3, align 1281140 %v4 = getelementptr <32 x i32>, ptr %a17, i32 41141 store <32 x i32> %a4, ptr %v4, align 1281142 %v5 = getelementptr <32 x i32>, ptr %a17, i32 51143 store <32 x i32> %a5, ptr %v5, align 1281144 %v6 = getelementptr <32 x i32>, ptr %a17, i32 61145 store <32 x i32> %a6, ptr %v6, align 1281146 %v7 = getelementptr <32 x i32>, ptr %a17, i32 71147 store <32 x i32> %a7, ptr %v7, align 1281148 %v8 = getelementptr <32 x i32>, ptr %a17, i32 81149 store <32 x i32> %a8, ptr %v8, align 1281150 %v9 = getelementptr <32 x i32>, ptr %a17, i32 91151 store <32 x i32> %a9, ptr %v9, align 1281152 %v10 = getelementptr <32 x i32>, ptr %a17, i32 101153 store <32 x i32> %a10, ptr %v10, align 1281154 %v11 = getelementptr <32 x i32>, ptr %a17, i32 111155 store <32 x i32> %a11, ptr %v11, align 1281156 %v12 = getelementptr <32 x i32>, ptr %a17, i32 121157 store <32 x i32> %a12, ptr %v12, align 1281158 %v13 = getelementptr <32 x i32>, ptr %a17, i32 131159 store <32 x i32> %a13, ptr %v13, align 1281160 %v14 = getelementptr <32 x i32>, ptr %a17, i32 141161 store <32 x i32> %a14, ptr %v14, align 1281162 %v15 = getelementptr <32 x i32>, ptr %a17, i32 151163 store <32 x i32> %a15, ptr %v15, align 1281164 %v16 = getelementptr <32 x i32>, ptr %a17, i32 161165 store <32 x i32> %a16, ptr %v16, align 1281166 ret void1167}1168 1169define 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, ptr %a17) #0 {1170; CHECK-LABEL: f19:1171; CHECK: // %bb.0: // %b01172; CHECK-NEXT: {1173; CHECK-NEXT: r2 = add(r0,#1152)1174; CHECK-NEXT: r3 = add(r0,#1280)1175; CHECK-NEXT: r4 = add(r0,#1408)1176; CHECK-NEXT: allocframe(r29,#0):raw1177; CHECK-NEXT: }1178; CHECK-NEXT: {1179; CHECK-NEXT: r1 = add(r30,#8)1180; CHECK-NEXT: r7 = add(r0,#1024)1181; CHECK-NEXT: r6 = add(r0,#1536)1182; CHECK-NEXT: vmem(r2+#0) = v91183; CHECK-NEXT: }1184; CHECK-NEXT: {1185; CHECK-NEXT: r5 = add(r0,#1664)1186; CHECK-NEXT: r3 = add(r0,#1920)1187; CHECK-NEXT: r2 = add(r0,#2048)1188; CHECK-NEXT: vmem(r3+#0) = v101189; CHECK-NEXT: }1190; CHECK-NEXT: {1191; CHECK-NEXT: r4 = add(r0,#1792)1192; CHECK-NEXT: r29 = and(r29,#-128)1193; CHECK-NEXT: v16 = vmem(r1+#0)1194; CHECK-NEXT: vmem(r4+#0) = v111195; CHECK-NEXT: }1196; CHECK-NEXT: {1197; CHECK-NEXT: vmem(r0+#0) = v01198; CHECK-NEXT: }1199; CHECK-NEXT: {1200; CHECK-NEXT: vmem(r0+#1) = v11201; CHECK-NEXT: }1202; CHECK-NEXT: {1203; CHECK-NEXT: vmem(r7+#0) = v81204; CHECK-NEXT: }1205; CHECK-NEXT: {1206; CHECK-NEXT: vmem(r0+#2) = v21207; CHECK-NEXT: }1208; CHECK-NEXT: {1209; CHECK-NEXT: vmem(r0+#3) = v31210; CHECK-NEXT: }1211; CHECK-NEXT: {1212; CHECK-NEXT: vmem(r0+#4) = v41213; CHECK-NEXT: }1214; CHECK-NEXT: {1215; CHECK-NEXT: vmem(r6+#0) = v121216; CHECK-NEXT: }1217; CHECK-NEXT: {1218; CHECK-NEXT: vmem(r0+#5) = v51219; CHECK-NEXT: }1220; CHECK-NEXT: {1221; CHECK-NEXT: vmem(r5+#0) = v131222; CHECK-NEXT: }1223; CHECK-NEXT: {1224; CHECK-NEXT: vmem(r0+#6) = v61225; CHECK-NEXT: }1226; CHECK-NEXT: {1227; CHECK-NEXT: vmem(r4+#0) = v141228; CHECK-NEXT: }1229; CHECK-NEXT: {1230; CHECK-NEXT: vmem(r0+#7) = v71231; CHECK-NEXT: }1232; CHECK-NEXT: {1233; CHECK-NEXT: vmem(r3+#0) = v151234; CHECK-NEXT: }1235; CHECK-NEXT: {1236; CHECK-NEXT: vmem(r2+#0) = v161237; CHECK-NEXT: }1238; CHECK-NEXT: {1239; CHECK-NEXT: r31:30 = dealloc_return(r30):raw1240; CHECK-NEXT: }1241b0:1242 store <64 x half> %a0, ptr %a17, align 1281243 %v1 = getelementptr <64 x half>, ptr %a17, i32 11244 store <64 x half> %a1, ptr %v1, align 1281245 %v2 = getelementptr <64 x half>, ptr %a17, i32 21246 store <64 x half> %a2, ptr %v2, align 1281247 %v3 = getelementptr <64 x half>, ptr %a17, i32 31248 store <64 x half> %a3, ptr %v3, align 1281249 %v4 = getelementptr <64 x half>, ptr %a17, i32 41250 store <64 x half> %a4, ptr %v4, align 1281251 %v5 = getelementptr <64 x half>, ptr %a17, i32 51252 store <64 x half> %a5, ptr %v5, align 1281253 %v6 = getelementptr <64 x half>, ptr %a17, i32 61254 store <64 x half> %a6, ptr %v6, align 1281255 %v7 = getelementptr <64 x half>, ptr %a17, i32 71256 store <64 x half> %a7, ptr %v7, align 1281257 %v8 = getelementptr <64 x half>, ptr %a17, i32 81258 store <64 x half> %a8, ptr %v8, align 1281259 %v9 = getelementptr <64 x half>, ptr %a17, i32 91260 store <64 x half> %a9, ptr %v9, align 1281261 %v10 = getelementptr <64 x half>, ptr %a17, i32 101262 store <64 x half> %a10, ptr %v10, align 1281263 %v11 = getelementptr <64 x half>, ptr %a17, i32 111264 store <64 x half> %a11, ptr %v11, align 1281265 %v12 = getelementptr <64 x half>, ptr %a17, i32 121266 store <64 x half> %a12, ptr %v12, align 1281267 %v13 = getelementptr <64 x half>, ptr %a17, i32 131268 store <64 x half> %a13, ptr %v13, align 1281269 %v14 = getelementptr <64 x half>, ptr %a17, i32 141270 store <64 x half> %a14, ptr %v14, align 1281271 %v15 = getelementptr <64 x half>, ptr %a17, i32 151272 store <64 x half> %a15, ptr %v15, align 1281273 %v16 = getelementptr <64 x half>, ptr %a17, i32 161274 store <64 x half> %a16, ptr %v16, align 1281275 ret void1276}1277 1278define 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, ptr %a17) #0 {1279; CHECK-LABEL: f20:1280; CHECK: // %bb.0: // %b01281; CHECK-NEXT: {1282; CHECK-NEXT: r2 = add(r0,#1152)1283; CHECK-NEXT: r3 = add(r0,#1280)1284; CHECK-NEXT: r4 = add(r0,#1408)1285; CHECK-NEXT: allocframe(r29,#0):raw1286; CHECK-NEXT: }1287; CHECK-NEXT: {1288; CHECK-NEXT: r1 = add(r30,#8)1289; CHECK-NEXT: r7 = add(r0,#1024)1290; CHECK-NEXT: r6 = add(r0,#1536)1291; CHECK-NEXT: vmem(r2+#0) = v91292; CHECK-NEXT: }1293; CHECK-NEXT: {1294; CHECK-NEXT: r5 = add(r0,#1664)1295; CHECK-NEXT: r3 = add(r0,#1920)1296; CHECK-NEXT: r2 = add(r0,#2048)1297; CHECK-NEXT: vmem(r3+#0) = v101298; CHECK-NEXT: }1299; CHECK-NEXT: {1300; CHECK-NEXT: r4 = add(r0,#1792)1301; CHECK-NEXT: r29 = and(r29,#-128)1302; CHECK-NEXT: v16 = vmem(r1+#0)1303; CHECK-NEXT: vmem(r4+#0) = v111304; CHECK-NEXT: }1305; CHECK-NEXT: {1306; CHECK-NEXT: vmem(r0+#0) = v01307; CHECK-NEXT: }1308; CHECK-NEXT: {1309; CHECK-NEXT: vmem(r0+#1) = v11310; CHECK-NEXT: }1311; CHECK-NEXT: {1312; CHECK-NEXT: vmem(r7+#0) = v81313; CHECK-NEXT: }1314; CHECK-NEXT: {1315; CHECK-NEXT: vmem(r0+#2) = v21316; CHECK-NEXT: }1317; CHECK-NEXT: {1318; CHECK-NEXT: vmem(r0+#3) = v31319; CHECK-NEXT: }1320; CHECK-NEXT: {1321; CHECK-NEXT: vmem(r0+#4) = v41322; CHECK-NEXT: }1323; CHECK-NEXT: {1324; CHECK-NEXT: vmem(r6+#0) = v121325; CHECK-NEXT: }1326; CHECK-NEXT: {1327; CHECK-NEXT: vmem(r0+#5) = v51328; CHECK-NEXT: }1329; CHECK-NEXT: {1330; CHECK-NEXT: vmem(r5+#0) = v131331; CHECK-NEXT: }1332; CHECK-NEXT: {1333; CHECK-NEXT: vmem(r0+#6) = v61334; CHECK-NEXT: }1335; CHECK-NEXT: {1336; CHECK-NEXT: vmem(r4+#0) = v141337; CHECK-NEXT: }1338; CHECK-NEXT: {1339; CHECK-NEXT: vmem(r0+#7) = v71340; CHECK-NEXT: }1341; CHECK-NEXT: {1342; CHECK-NEXT: vmem(r3+#0) = v151343; CHECK-NEXT: }1344; CHECK-NEXT: {1345; CHECK-NEXT: vmem(r2+#0) = v161346; CHECK-NEXT: }1347; CHECK-NEXT: {1348; CHECK-NEXT: r31:30 = dealloc_return(r30):raw1349; CHECK-NEXT: }1350b0:1351 store <32 x float> %a0, ptr %a17, align 1281352 %v1 = getelementptr <32 x float>, ptr %a17, i32 11353 store <32 x float> %a1, ptr %v1, align 1281354 %v2 = getelementptr <32 x float>, ptr %a17, i32 21355 store <32 x float> %a2, ptr %v2, align 1281356 %v3 = getelementptr <32 x float>, ptr %a17, i32 31357 store <32 x float> %a3, ptr %v3, align 1281358 %v4 = getelementptr <32 x float>, ptr %a17, i32 41359 store <32 x float> %a4, ptr %v4, align 1281360 %v5 = getelementptr <32 x float>, ptr %a17, i32 51361 store <32 x float> %a5, ptr %v5, align 1281362 %v6 = getelementptr <32 x float>, ptr %a17, i32 61363 store <32 x float> %a6, ptr %v6, align 1281364 %v7 = getelementptr <32 x float>, ptr %a17, i32 71365 store <32 x float> %a7, ptr %v7, align 1281366 %v8 = getelementptr <32 x float>, ptr %a17, i32 81367 store <32 x float> %a8, ptr %v8, align 1281368 %v9 = getelementptr <32 x float>, ptr %a17, i32 91369 store <32 x float> %a9, ptr %v9, align 1281370 %v10 = getelementptr <32 x float>, ptr %a17, i32 101371 store <32 x float> %a10, ptr %v10, align 1281372 %v11 = getelementptr <32 x float>, ptr %a17, i32 111373 store <32 x float> %a11, ptr %v11, align 1281374 %v12 = getelementptr <32 x float>, ptr %a17, i32 121375 store <32 x float> %a12, ptr %v12, align 1281376 %v13 = getelementptr <32 x float>, ptr %a17, i32 131377 store <32 x float> %a13, ptr %v13, align 1281378 %v14 = getelementptr <32 x float>, ptr %a17, i32 141379 store <32 x float> %a14, ptr %v14, align 1281380 %v15 = getelementptr <32 x float>, ptr %a17, i32 151381 store <32 x float> %a15, ptr %v15, align 1281382 %v16 = getelementptr <32 x float>, ptr %a17, i32 161383 store <32 x float> %a16, ptr %v16, align 1281384 ret void1385}1386 1387define <128 x i8> @f21() #0 {1388; CHECK-LABEL: f21:1389; CHECK: // %bb.0:1390; CHECK-NEXT: {1391; CHECK-NEXT: v0 = vxor(v0,v0)1392; CHECK-NEXT: jumpr r311393; CHECK-NEXT: }1394 %v0 = insertelement <128 x i8> undef, i8 0, i32 01395 %v1 = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> zeroinitializer1396 ret <128 x i8> %v11397}1398 1399define <256 x i8> @f22() #0 {1400; CHECK-LABEL: f22:1401; CHECK: // %bb.0:1402; CHECK-NEXT: {1403; CHECK-NEXT: v1:0.w = vsub(v1:0.w,v1:0.w)1404; CHECK-NEXT: jumpr r311405; CHECK-NEXT: }1406 %v0 = insertelement <256 x i8> undef, i8 0, i32 01407 %v1 = shufflevector <256 x i8> %v0, <256 x i8> undef, <256 x i32> zeroinitializer1408 ret <256 x i8> %v11409}1410 1411define <64 x i16> @f23() #0 {1412; CHECK-LABEL: f23:1413; CHECK: // %bb.0:1414; CHECK-NEXT: {1415; CHECK-NEXT: v0 = vxor(v0,v0)1416; CHECK-NEXT: jumpr r311417; CHECK-NEXT: }1418 %v0 = insertelement <64 x i16> undef, i16 0, i32 01419 %v1 = shufflevector <64 x i16> %v0, <64 x i16> undef, <64 x i32> zeroinitializer1420 ret <64 x i16> %v11421}1422 1423define <128 x i16> @f24() #0 {1424; CHECK-LABEL: f24:1425; CHECK: // %bb.0:1426; CHECK-NEXT: {1427; CHECK-NEXT: v1:0.w = vsub(v1:0.w,v1:0.w)1428; CHECK-NEXT: jumpr r311429; CHECK-NEXT: }1430 %v0 = insertelement <128 x i16> undef, i16 0, i32 01431 %v1 = shufflevector <128 x i16> %v0, <128 x i16> undef, <128 x i32> zeroinitializer1432 ret <128 x i16> %v11433}1434 1435define <32 x i32> @f25() #0 {1436; CHECK-LABEL: f25:1437; CHECK: // %bb.0:1438; CHECK-NEXT: {1439; CHECK-NEXT: v0 = vxor(v0,v0)1440; CHECK-NEXT: jumpr r311441; CHECK-NEXT: }1442 %v0 = insertelement <32 x i32> undef, i32 0, i32 01443 %v1 = shufflevector <32 x i32> %v0, <32 x i32> undef, <32 x i32> zeroinitializer1444 ret <32 x i32> %v11445}1446 1447define <64 x i32> @f26() #0 {1448; CHECK-LABEL: f26:1449; CHECK: // %bb.0:1450; CHECK-NEXT: {1451; CHECK-NEXT: v1:0.w = vsub(v1:0.w,v1:0.w)1452; CHECK-NEXT: jumpr r311453; CHECK-NEXT: }1454 %v0 = insertelement <64 x i32> undef, i32 0, i32 01455 %v1 = shufflevector <64 x i32> %v0, <64 x i32> undef, <64 x i32> zeroinitializer1456 ret <64 x i32> %v11457}1458 1459define <64 x half> @f27() #0 {1460; CHECK-LABEL: f27:1461; CHECK: // %bb.0:1462; CHECK-NEXT: {1463; CHECK-NEXT: v0 = vxor(v0,v0)1464; CHECK-NEXT: jumpr r311465; CHECK-NEXT: }1466 %v0 = insertelement <64 x half> undef, half 0xH0, i32 01467 %v1 = shufflevector <64 x half> %v0, <64 x half> undef, <64 x i32> zeroinitializer1468 ret <64 x half> %v11469}1470 1471define <128 x half> @f28() #0 {1472; CHECK-LABEL: f28:1473; CHECK: // %bb.0:1474; CHECK-NEXT: {1475; CHECK-NEXT: v1:0.w = vsub(v1:0.w,v1:0.w)1476; CHECK-NEXT: jumpr r311477; CHECK-NEXT: }1478 %v0 = insertelement <128 x half> undef, half 0xH0, i32 01479 %v1 = shufflevector <128 x half> %v0, <128 x half> undef, <128 x i32> zeroinitializer1480 ret <128 x half> %v11481}1482 1483define <32 x float> @f29() #0 {1484; CHECK-LABEL: f29:1485; CHECK: // %bb.0:1486; CHECK-NEXT: {1487; CHECK-NEXT: v0 = vxor(v0,v0)1488; CHECK-NEXT: jumpr r311489; CHECK-NEXT: }1490 %v0 = insertelement <32 x float> undef, float 0.0, i32 01491 %v1 = shufflevector <32 x float> %v0, <32 x float> undef, <32 x i32> zeroinitializer1492 ret <32 x float> %v11493}1494 1495define <64 x float> @f30() #0 {1496; CHECK-LABEL: f30:1497; CHECK: // %bb.0:1498; CHECK-NEXT: {1499; CHECK-NEXT: v1:0.w = vsub(v1:0.w,v1:0.w)1500; CHECK-NEXT: jumpr r311501; CHECK-NEXT: }1502 %v0 = insertelement <64 x float> undef, float 0.0, i32 01503 %v1 = shufflevector <64 x float> %v0, <64 x float> undef, <64 x i32> zeroinitializer1504 ret <64 x float> %v11505}1506 1507attributes #0 = { nounwind "target-cpu"="hexagonv69" "target-features"="+hvxv69,+hvx-length128b,+hvx-qfloat" }1508