brintos

brintos / llvm-project-archived public Read only

0
0
Text · 19.4 KiB · c8e0d0d Raw
630 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mcpu=pwr9 -verify-machineinstrs -ppc-vsr-nums-as-vr -ppc-asm-full-reg-names \3; RUN:    -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s --check-prefix=P9LE4; RUN: llc -mcpu=pwr9 -verify-machineinstrs -ppc-vsr-nums-as-vr -ppc-asm-full-reg-names \5; RUN:    -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s --check-prefix=P9BE6; RUN: llc -mcpu=pwr8 -verify-machineinstrs -ppc-vsr-nums-as-vr -ppc-asm-full-reg-names \7; RUN:    -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s --check-prefix=P8LE8; RUN: llc -mcpu=pwr8 -verify-machineinstrs -ppc-vsr-nums-as-vr -ppc-asm-full-reg-names \9; RUN:    -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s --check-prefix=P8BE10 11; RUN: llc -mcpu=pwr9 -verify-machineinstrs -ppc-vsr-nums-as-vr -ppc-asm-full-reg-names \12; RUN:    -mtriple=powerpc64-ibm-aix-xcoff< %s | FileCheck %s \13; RUN:    --check-prefixes=AIX,P9-AIX,P9-AIX-6414; RUN: llc -mcpu=pwr9 -verify-machineinstrs -ppc-vsr-nums-as-vr -ppc-asm-full-reg-names \15; RUN:    -mtriple=powerpc-ibm-aix-xcoff < %s | FileCheck %s \16; RUN:    --check-prefixes=AIX,P9-AIX,P9-AIX-3217; RUN: llc -mcpu=pwr8 -verify-machineinstrs -ppc-vsr-nums-as-vr -ppc-asm-full-reg-names \18; RUN:    -mtriple=powerpc64-ibm-aix-xcoff < %s | FileCheck %s \19; RUN:    --check-prefixes=AIX,P8-AIX-6420; RUN: llc -mcpu=pwr8 -verify-machineinstrs -ppc-vsr-nums-as-vr -ppc-asm-full-reg-names \21; RUN:    -mtriple=powerpc-ibm-aix-xcoff < %s | FileCheck %s \22; RUN:    --check-prefixes=AIX,P8-AIX-3223 24; Function Attrs: norecurse nounwind readonly25define <4 x i32> @s2v_test1(ptr nocapture readonly %int32, <4 x i32> %vec)  {26; P9LE-LABEL: s2v_test1:27; P9LE:       # %bb.0: # %entry28; P9LE-NEXT:    lwz r3, 0(r3)29; P9LE-NEXT:    mtfprwz f0, r330; P9LE-NEXT:    xxinsertw v2, vs0, 1231; P9LE-NEXT:    blr32;33; P9BE-LABEL: s2v_test1:34; P9BE:       # %bb.0: # %entry35; P9BE-NEXT:    lwz r3, 0(r3)36; P9BE-NEXT:    mtfprwz f0, r337; P9BE-NEXT:    xxinsertw v2, vs0, 038; P9BE-NEXT:    blr39;40; P8LE-LABEL: s2v_test1:41; P8LE:       # %bb.0: # %entry42; P8LE-NEXT:    addis r4, r2, .LCPI0_0@toc@ha43; P8LE-NEXT:    lxsiwzx v4, 0, r344; P8LE-NEXT:    addi r4, r4, .LCPI0_0@toc@l45; P8LE-NEXT:    lxvd2x vs0, 0, r446; P8LE-NEXT:    xxswapd v3, vs047; P8LE-NEXT:    vperm v2, v2, v4, v348; P8LE-NEXT:    blr49;50; P8BE-LABEL: s2v_test1:51; P8BE:       # %bb.0: # %entry52; P8BE-NEXT:    addis r4, r2, .LCPI0_0@toc@ha53; P8BE-NEXT:    lxsiwzx v4, 0, r354; P8BE-NEXT:    addi r4, r4, .LCPI0_0@toc@l55; P8BE-NEXT:    lxvw4x v3, 0, r456; P8BE-NEXT:    vperm v2, v4, v2, v357; P8BE-NEXT:    blr58;59; P9-AIX-LABEL: s2v_test1:60; P9-AIX:       # %bb.0: # %entry61; P9-AIX-NEXT:    lwz r3, 0(r3)62; P9-AIX-NEXT:    mtfprwz f0, r363; P9-AIX-NEXT:    xxinsertw v2, vs0, 064; P9-AIX-NEXT:    blr65;66; P8-AIX-64-LABEL: s2v_test1:67; P8-AIX-64:       # %bb.0: # %entry68; P8-AIX-64-NEXT:    ld r4, L..C0(r2) # %const.069; P8-AIX-64-NEXT:    lxsiwzx v4, 0, r370; P8-AIX-64-NEXT:    lxvw4x v3, 0, r471; P8-AIX-64-NEXT:    vperm v2, v4, v2, v372; P8-AIX-64-NEXT:    blr73;74; P8-AIX-32-LABEL: s2v_test1:75; P8-AIX-32:       # %bb.0: # %entry76; P8-AIX-32-NEXT:    lfiwzx f0, 0, r377; P8-AIX-32-NEXT:    lwz r3, L..C0(r2) # %const.078; P8-AIX-32-NEXT:    lxvw4x v4, 0, r379; P8-AIX-32-NEXT:    xxspltw v3, vs0, 180; P8-AIX-32-NEXT:    vperm v2, v3, v2, v481; P8-AIX-32-NEXT:    blr82entry:83  %0 = load i32, ptr %int32, align 484  %vecins = insertelement <4 x i32> %vec, i32 %0, i32 085  ret <4 x i32> %vecins86}87 88; Function Attrs: norecurse nounwind readonly89define <4 x i32> @s2v_test2(ptr nocapture readonly %int32, <4 x i32> %vec)  {90; P9LE-LABEL: s2v_test2:91; P9LE:       # %bb.0: # %entry92; P9LE-NEXT:    lwz r3, 4(r3)93; P9LE-NEXT:    mtfprwz f0, r394; P9LE-NEXT:    xxinsertw v2, vs0, 1295; P9LE-NEXT:    blr96;97; P9BE-LABEL: s2v_test2:98; P9BE:       # %bb.0: # %entry99; P9BE-NEXT:    lwz r3, 4(r3)100; P9BE-NEXT:    mtfprwz f0, r3101; P9BE-NEXT:    xxinsertw v2, vs0, 0102; P9BE-NEXT:    blr103;104; P8LE-LABEL: s2v_test2:105; P8LE:       # %bb.0: # %entry106; P8LE-NEXT:    addis r4, r2, .LCPI1_0@toc@ha107; P8LE-NEXT:    addi r3, r3, 4108; P8LE-NEXT:    addi r4, r4, .LCPI1_0@toc@l109; P8LE-NEXT:    lxsiwzx v4, 0, r3110; P8LE-NEXT:    lxvd2x vs0, 0, r4111; P8LE-NEXT:    xxswapd v3, vs0112; P8LE-NEXT:    vperm v2, v2, v4, v3113; P8LE-NEXT:    blr114;115; P8BE-LABEL: s2v_test2:116; P8BE:       # %bb.0: # %entry117; P8BE-NEXT:    addis r4, r2, .LCPI1_0@toc@ha118; P8BE-NEXT:    addi r3, r3, 4119; P8BE-NEXT:    addi r4, r4, .LCPI1_0@toc@l120; P8BE-NEXT:    lxsiwzx v4, 0, r3121; P8BE-NEXT:    lxvw4x v3, 0, r4122; P8BE-NEXT:    vperm v2, v4, v2, v3123; P8BE-NEXT:    blr124;125; P9-AIX-LABEL: s2v_test2:126; P9-AIX:       # %bb.0: # %entry127; P9-AIX-NEXT:    lwz r3, 4(r3)128; P9-AIX-NEXT:    mtfprwz f0, r3129; P9-AIX-NEXT:    xxinsertw v2, vs0, 0130; P9-AIX-NEXT:    blr131;132; P8-AIX-64-LABEL: s2v_test2:133; P8-AIX-64:       # %bb.0: # %entry134; P8-AIX-64-NEXT:    ld r4, L..C1(r2) # %const.0135; P8-AIX-64-NEXT:    addi r3, r3, 4136; P8-AIX-64-NEXT:    lxsiwzx v4, 0, r3137; P8-AIX-64-NEXT:    lxvw4x v3, 0, r4138; P8-AIX-64-NEXT:    vperm v2, v4, v2, v3139; P8-AIX-64-NEXT:    blr140;141; P8-AIX-32-LABEL: s2v_test2:142; P8-AIX-32:       # %bb.0: # %entry143; P8-AIX-32-NEXT:    addi r3, r3, 4144; P8-AIX-32-NEXT:    lfiwzx f0, 0, r3145; P8-AIX-32-NEXT:    lwz r3, L..C1(r2) # %const.0146; P8-AIX-32-NEXT:    lxvw4x v4, 0, r3147; P8-AIX-32-NEXT:    xxspltw v3, vs0, 1148; P8-AIX-32-NEXT:    vperm v2, v3, v2, v4149; P8-AIX-32-NEXT:    blr150entry:151  %arrayidx = getelementptr inbounds i32, ptr %int32, i64 1152  %0 = load i32, ptr %arrayidx, align 4153  %vecins = insertelement <4 x i32> %vec, i32 %0, i32 0154  ret <4 x i32> %vecins155}156 157; Function Attrs: norecurse nounwind readonly158define <4 x i32> @s2v_test3(ptr nocapture readonly %int32, <4 x i32> %vec, i32 signext %Idx)  {159; P9LE-LABEL: s2v_test3:160; P9LE:       # %bb.0: # %entry161; P9LE-NEXT:    sldi r4, r7, 2162; P9LE-NEXT:    lwzx r3, r3, r4163; P9LE-NEXT:    mtfprwz f0, r3164; P9LE-NEXT:    xxinsertw v2, vs0, 12165; P9LE-NEXT:    blr166;167; P9BE-LABEL: s2v_test3:168; P9BE:       # %bb.0: # %entry169; P9BE-NEXT:    sldi r4, r7, 2170; P9BE-NEXT:    lwzx r3, r3, r4171; P9BE-NEXT:    mtfprwz f0, r3172; P9BE-NEXT:    xxinsertw v2, vs0, 0173; P9BE-NEXT:    blr174;175; P8LE-LABEL: s2v_test3:176; P8LE:       # %bb.0: # %entry177; P8LE-NEXT:    addis r4, r2, .LCPI2_0@toc@ha178; P8LE-NEXT:    addi r4, r4, .LCPI2_0@toc@l179; P8LE-NEXT:    lxvd2x vs0, 0, r4180; P8LE-NEXT:    sldi r4, r7, 2181; P8LE-NEXT:    lxsiwzx v4, r3, r4182; P8LE-NEXT:    xxswapd v3, vs0183; P8LE-NEXT:    vperm v2, v2, v4, v3184; P8LE-NEXT:    blr185;186; P8BE-LABEL: s2v_test3:187; P8BE:       # %bb.0: # %entry188; P8BE-NEXT:    sldi r4, r7, 2189; P8BE-NEXT:    lxsiwzx v3, r3, r4190; P8BE-NEXT:    addis r3, r2, .LCPI2_0@toc@ha191; P8BE-NEXT:    addi r3, r3, .LCPI2_0@toc@l192; P8BE-NEXT:    lxvw4x v4, 0, r3193; P8BE-NEXT:    vperm v2, v3, v2, v4194; P8BE-NEXT:    blr195;196; P9-AIX-64-LABEL: s2v_test3:197; P9-AIX-64:       # %bb.0: # %entry198; P9-AIX-64-NEXT:    sldi r4, r4, 2199; P9-AIX-64-NEXT:    lwzx r3, r3, r4200; P9-AIX-64-NEXT:    mtfprwz f0, r3201; P9-AIX-64-NEXT:    xxinsertw v2, vs0, 0202; P9-AIX-64-NEXT:    blr203;204; P9-AIX-32-LABEL: s2v_test3:205; P9-AIX-32:       # %bb.0: # %entry206; P9-AIX-32-NEXT:    slwi r4, r4, 2207; P9-AIX-32-NEXT:    lwzx r3, r3, r4208; P9-AIX-32-NEXT:    mtfprwz f0, r3209; P9-AIX-32-NEXT:    xxinsertw v2, vs0, 0210; P9-AIX-32-NEXT:    blr211;212; P8-AIX-64-LABEL: s2v_test3:213; P8-AIX-64:       # %bb.0: # %entry214; P8-AIX-64-NEXT:    sldi r4, r4, 2215; P8-AIX-64-NEXT:    lxsiwzx v3, r3, r4216; P8-AIX-64-NEXT:    ld r3, L..C2(r2) # %const.0217; P8-AIX-64-NEXT:    lxvw4x v4, 0, r3218; P8-AIX-64-NEXT:    vperm v2, v3, v2, v4219; P8-AIX-64-NEXT:    blr220;221; P8-AIX-32-LABEL: s2v_test3:222; P8-AIX-32:       # %bb.0: # %entry223; P8-AIX-32-NEXT:    slwi r4, r4, 2224; P8-AIX-32-NEXT:    lfiwzx f0, r3, r4225; P8-AIX-32-NEXT:    lwz r3, L..C2(r2) # %const.0226; P8-AIX-32-NEXT:    lxvw4x v4, 0, r3227; P8-AIX-32-NEXT:    xxspltw v3, vs0, 1228; P8-AIX-32-NEXT:    vperm v2, v3, v2, v4229; P8-AIX-32-NEXT:    blr230entry:231  %idxprom = sext i32 %Idx to i64232  %arrayidx = getelementptr inbounds i32, ptr %int32, i64 %idxprom233  %0 = load i32, ptr %arrayidx, align 4234  %vecins = insertelement <4 x i32> %vec, i32 %0, i32 0235  ret <4 x i32> %vecins236}237 238; Function Attrs: norecurse nounwind readonly239define <4 x i32> @s2v_test4(ptr nocapture readonly %int32, <4 x i32> %vec)  {240; P9LE-LABEL: s2v_test4:241; P9LE:       # %bb.0: # %entry242; P9LE-NEXT:    lwz r3, 4(r3)243; P9LE-NEXT:    mtfprwz f0, r3244; P9LE-NEXT:    xxinsertw v2, vs0, 12245; P9LE-NEXT:    blr246;247; P9BE-LABEL: s2v_test4:248; P9BE:       # %bb.0: # %entry249; P9BE-NEXT:    lwz r3, 4(r3)250; P9BE-NEXT:    mtfprwz f0, r3251; P9BE-NEXT:    xxinsertw v2, vs0, 0252; P9BE-NEXT:    blr253;254; P8LE-LABEL: s2v_test4:255; P8LE:       # %bb.0: # %entry256; P8LE-NEXT:    addis r4, r2, .LCPI3_0@toc@ha257; P8LE-NEXT:    addi r3, r3, 4258; P8LE-NEXT:    addi r4, r4, .LCPI3_0@toc@l259; P8LE-NEXT:    lxsiwzx v4, 0, r3260; P8LE-NEXT:    lxvd2x vs0, 0, r4261; P8LE-NEXT:    xxswapd v3, vs0262; P8LE-NEXT:    vperm v2, v2, v4, v3263; P8LE-NEXT:    blr264;265; P8BE-LABEL: s2v_test4:266; P8BE:       # %bb.0: # %entry267; P8BE-NEXT:    addis r4, r2, .LCPI3_0@toc@ha268; P8BE-NEXT:    addi r3, r3, 4269; P8BE-NEXT:    addi r4, r4, .LCPI3_0@toc@l270; P8BE-NEXT:    lxsiwzx v4, 0, r3271; P8BE-NEXT:    lxvw4x v3, 0, r4272; P8BE-NEXT:    vperm v2, v4, v2, v3273; P8BE-NEXT:    blr274;275; P9-AIX-LABEL: s2v_test4:276; P9-AIX:       # %bb.0: # %entry277; P9-AIX-NEXT:    lwz r3, 4(r3)278; P9-AIX-NEXT:    mtfprwz f0, r3279; P9-AIX-NEXT:    xxinsertw v2, vs0, 0280; P9-AIX-NEXT:    blr281;282; P8-AIX-64-LABEL: s2v_test4:283; P8-AIX-64:       # %bb.0: # %entry284; P8-AIX-64-NEXT:    ld r4, L..C3(r2) # %const.0285; P8-AIX-64-NEXT:    addi r3, r3, 4286; P8-AIX-64-NEXT:    lxsiwzx v4, 0, r3287; P8-AIX-64-NEXT:    lxvw4x v3, 0, r4288; P8-AIX-64-NEXT:    vperm v2, v4, v2, v3289; P8-AIX-64-NEXT:    blr290;291; P8-AIX-32-LABEL: s2v_test4:292; P8-AIX-32:       # %bb.0: # %entry293; P8-AIX-32-NEXT:    addi r3, r3, 4294; P8-AIX-32-NEXT:    lfiwzx f0, 0, r3295; P8-AIX-32-NEXT:    lwz r3, L..C3(r2) # %const.0296; P8-AIX-32-NEXT:    lxvw4x v4, 0, r3297; P8-AIX-32-NEXT:    xxspltw v3, vs0, 1298; P8-AIX-32-NEXT:    vperm v2, v3, v2, v4299; P8-AIX-32-NEXT:    blr300entry:301  %arrayidx = getelementptr inbounds i32, ptr %int32, i64 1302  %0 = load i32, ptr %arrayidx, align 4303  %vecins = insertelement <4 x i32> %vec, i32 %0, i32 0304  ret <4 x i32> %vecins305}306 307; Function Attrs: norecurse nounwind readonly308define <4 x i32> @s2v_test5(<4 x i32> %vec, ptr nocapture readonly %ptr1)  {309; P9LE-LABEL: s2v_test5:310; P9LE:       # %bb.0: # %entry311; P9LE-NEXT:    lwz r3, 0(r5)312; P9LE-NEXT:    mtfprwz f0, r3313; P9LE-NEXT:    xxinsertw v2, vs0, 12314; P9LE-NEXT:    blr315;316; P9BE-LABEL: s2v_test5:317; P9BE:       # %bb.0: # %entry318; P9BE-NEXT:    lwz r3, 0(r5)319; P9BE-NEXT:    mtfprwz f0, r3320; P9BE-NEXT:    xxinsertw v2, vs0, 0321; P9BE-NEXT:    blr322;323; P8LE-LABEL: s2v_test5:324; P8LE:       # %bb.0: # %entry325; P8LE-NEXT:    addis r3, r2, .LCPI4_0@toc@ha326; P8LE-NEXT:    lxsiwzx v4, 0, r5327; P8LE-NEXT:    addi r3, r3, .LCPI4_0@toc@l328; P8LE-NEXT:    lxvd2x vs0, 0, r3329; P8LE-NEXT:    xxswapd v3, vs0330; P8LE-NEXT:    vperm v2, v2, v4, v3331; P8LE-NEXT:    blr332;333; P8BE-LABEL: s2v_test5:334; P8BE:       # %bb.0: # %entry335; P8BE-NEXT:    addis r3, r2, .LCPI4_0@toc@ha336; P8BE-NEXT:    lxsiwzx v4, 0, r5337; P8BE-NEXT:    addi r3, r3, .LCPI4_0@toc@l338; P8BE-NEXT:    lxvw4x v3, 0, r3339; P8BE-NEXT:    vperm v2, v4, v2, v3340; P8BE-NEXT:    blr341;342; P9-AIX-LABEL: s2v_test5:343; P9-AIX:       # %bb.0: # %entry344; P9-AIX-NEXT:    lwz r3, 0(r3)345; P9-AIX-NEXT:    mtfprwz f0, r3346; P9-AIX-NEXT:    xxinsertw v2, vs0, 0347; P9-AIX-NEXT:    blr348;349; P8-AIX-64-LABEL: s2v_test5:350; P8-AIX-64:       # %bb.0: # %entry351; P8-AIX-64-NEXT:    ld r4, L..C4(r2) # %const.0352; P8-AIX-64-NEXT:    lxsiwzx v4, 0, r3353; P8-AIX-64-NEXT:    lxvw4x v3, 0, r4354; P8-AIX-64-NEXT:    vperm v2, v4, v2, v3355; P8-AIX-64-NEXT:    blr356;357; P8-AIX-32-LABEL: s2v_test5:358; P8-AIX-32:       # %bb.0: # %entry359; P8-AIX-32-NEXT:    lfiwzx f0, 0, r3360; P8-AIX-32-NEXT:    lwz r3, L..C4(r2) # %const.0361; P8-AIX-32-NEXT:    lxvw4x v4, 0, r3362; P8-AIX-32-NEXT:    xxspltw v3, vs0, 1363; P8-AIX-32-NEXT:    vperm v2, v3, v2, v4364; P8-AIX-32-NEXT:    blr365entry:366  %0 = load i32, ptr %ptr1, align 4367  %vecins = insertelement <4 x i32> %vec, i32 %0, i32 0368  ret <4 x i32> %vecins369}370 371; Function Attrs: norecurse nounwind readonly372define <4 x float> @s2v_test_f1(ptr nocapture readonly %f64, <4 x float> %vec)  {373; P9LE-LABEL: s2v_test_f1:374; P9LE:       # %bb.0: # %entry375; P9LE-NEXT:    lwz r3, 0(r3)376; P9LE-NEXT:    mtfprwz f0, r3377; P9LE-NEXT:    xxinsertw v2, vs0, 12378; P9LE-NEXT:    blr379;380; P9BE-LABEL: s2v_test_f1:381; P9BE:       # %bb.0: # %entry382; P9BE-NEXT:    lwz r3, 0(r3)383; P9BE-NEXT:    mtfprwz f0, r3384; P9BE-NEXT:    xxinsertw v2, vs0, 0385; P9BE-NEXT:    blr386;387; P8LE-LABEL: s2v_test_f1:388; P8LE:       # %bb.0: # %entry389; P8LE-NEXT:    addis r4, r2, .LCPI5_0@toc@ha390; P8LE-NEXT:    lxsiwzx v4, 0, r3391; P8LE-NEXT:    addi r4, r4, .LCPI5_0@toc@l392; P8LE-NEXT:    lxvd2x vs0, 0, r4393; P8LE-NEXT:    xxswapd v3, vs0394; P8LE-NEXT:    vperm v2, v2, v4, v3395; P8LE-NEXT:    blr396;397; P8BE-LABEL: s2v_test_f1:398; P8BE:       # %bb.0: # %entry399; P8BE-NEXT:    addis r4, r2, .LCPI5_0@toc@ha400; P8BE-NEXT:    lxsiwzx v4, 0, r3401; P8BE-NEXT:    addi r4, r4, .LCPI5_0@toc@l402; P8BE-NEXT:    lxvw4x v3, 0, r4403; P8BE-NEXT:    vperm v2, v4, v2, v3404; P8BE-NEXT:    blr405;406; P9-AIX-LABEL: s2v_test_f1:407; P9-AIX:       # %bb.0: # %entry408; P9-AIX-NEXT:    lwz r3, 0(r3)409; P9-AIX-NEXT:    mtfprwz f0, r3410; P9-AIX-NEXT:    xxinsertw v2, vs0, 0411; P9-AIX-NEXT:    blr412;413; P8-AIX-64-LABEL: s2v_test_f1:414; P8-AIX-64:       # %bb.0: # %entry415; P8-AIX-64-NEXT:    ld r4, L..C5(r2) # %const.0416; P8-AIX-64-NEXT:    lxsiwzx v4, 0, r3417; P8-AIX-64-NEXT:    lxvw4x v3, 0, r4418; P8-AIX-64-NEXT:    vperm v2, v4, v2, v3419; P8-AIX-64-NEXT:    blr420;421; P8-AIX-32-LABEL: s2v_test_f1:422; P8-AIX-32:       # %bb.0: # %entry423; P8-AIX-32-NEXT:    lwz r4, L..C5(r2) # %const.0424; P8-AIX-32-NEXT:    lxsiwzx v4, 0, r3425; P8-AIX-32-NEXT:    lxvw4x v3, 0, r4426; P8-AIX-32-NEXT:    vperm v2, v4, v2, v3427; P8-AIX-32-NEXT:    blr428entry:429  %0 = load float, ptr %f64, align 4430  %vecins = insertelement <4 x float> %vec, float %0, i32 0431  ret <4 x float> %vecins432}433 434; Function Attrs: norecurse nounwind readonly435define <2 x float> @s2v_test_f2(ptr nocapture readonly %f64, <2 x float> %vec)  {436; P9LE-LABEL: s2v_test_f2:437; P9LE:       # %bb.0: # %entry438; P9LE-NEXT:    addi r3, r3, 4439; P9LE-NEXT:    xxmrglw vs1, v2, v2440; P9LE-NEXT:    lfiwzx f0, 0, r3441; P9LE-NEXT:    xxmrghw v2, vs1, vs0442; P9LE-NEXT:    blr443;444; P9BE-LABEL: s2v_test_f2:445; P9BE:       # %bb.0: # %entry446; P9BE-NEXT:    addi r3, r3, 4447; P9BE-NEXT:    lxsiwzx v3, 0, r3448; P9BE-NEXT:    vmrgow v2, v3, v2449; P9BE-NEXT:    blr450;451; P8LE-LABEL: s2v_test_f2:452; P8LE:       # %bb.0: # %entry453; P8LE-NEXT:    addi r3, r3, 4454; P8LE-NEXT:    xxmrglw vs0, v2, v2455; P8LE-NEXT:    lfiwzx f1, 0, r3456; P8LE-NEXT:    xxmrghw v2, vs0, vs1457; P8LE-NEXT:    blr458;459; P8BE-LABEL: s2v_test_f2:460; P8BE:       # %bb.0: # %entry461; P8BE-NEXT:    addi r3, r3, 4462; P8BE-NEXT:    lxsiwzx v3, 0, r3463; P8BE-NEXT:    vmrgow v2, v3, v2464; P8BE-NEXT:    blr465;466; AIX-LABEL: s2v_test_f2:467; AIX:       # %bb.0: # %entry468; AIX-NEXT:    addi r3, r3, 4469; AIX-NEXT:    lxsiwzx v3, 0, r3470; AIX-NEXT:    vmrgow v2, v3, v2471; AIX-NEXT:    blr472entry:473  %arrayidx = getelementptr inbounds float, ptr %f64, i64 1474  %0 = load float, ptr %arrayidx, align 8475  %vecins = insertelement <2 x float> %vec, float %0, i32 0476  ret <2 x float> %vecins477}478 479; Function Attrs: norecurse nounwind readonly480define <2 x float> @s2v_test_f3(ptr nocapture readonly %f64, <2 x float> %vec, i32 signext %Idx)  {481; P9LE-LABEL: s2v_test_f3:482; P9LE:       # %bb.0: # %entry483; P9LE-NEXT:    sldi r4, r7, 2484; P9LE-NEXT:    xxmrglw vs1, v2, v2485; P9LE-NEXT:    lfiwzx f0, r3, r4486; P9LE-NEXT:    xxmrghw v2, vs1, vs0487; P9LE-NEXT:    blr488;489; P9BE-LABEL: s2v_test_f3:490; P9BE:       # %bb.0: # %entry491; P9BE-NEXT:    sldi r4, r7, 2492; P9BE-NEXT:    lxsiwzx v3, r3, r4493; P9BE-NEXT:    vmrgow v2, v3, v2494; P9BE-NEXT:    blr495;496; P8LE-LABEL: s2v_test_f3:497; P8LE:       # %bb.0: # %entry498; P8LE-NEXT:    sldi r4, r7, 2499; P8LE-NEXT:    xxmrglw vs0, v2, v2500; P8LE-NEXT:    lfiwzx f1, r3, r4501; P8LE-NEXT:    xxmrghw v2, vs0, vs1502; P8LE-NEXT:    blr503;504; P8BE-LABEL: s2v_test_f3:505; P8BE:       # %bb.0: # %entry506; P8BE-NEXT:    sldi r4, r7, 2507; P8BE-NEXT:    lxsiwzx v3, r3, r4508; P8BE-NEXT:    vmrgow v2, v3, v2509; P8BE-NEXT:    blr510;511; P9-AIX-64-LABEL: s2v_test_f3:512; P9-AIX-64:       # %bb.0: # %entry513; P9-AIX-64-NEXT:    sldi r4, r4, 2514; P9-AIX-64-NEXT:    lxsiwzx v3, r3, r4515; P9-AIX-64-NEXT:    vmrgow v2, v3, v2516; P9-AIX-64-NEXT:    blr517;518; P9-AIX-32-LABEL: s2v_test_f3:519; P9-AIX-32:       # %bb.0: # %entry520; P9-AIX-32-NEXT:    slwi r4, r4, 2521; P9-AIX-32-NEXT:    lxsiwzx v3, r3, r4522; P9-AIX-32-NEXT:    vmrgow v2, v3, v2523; P9-AIX-32-NEXT:    blr524;525; P8-AIX-64-LABEL: s2v_test_f3:526; P8-AIX-64:       # %bb.0: # %entry527; P8-AIX-64-NEXT:    sldi r4, r4, 2528; P8-AIX-64-NEXT:    lxsiwzx v3, r3, r4529; P8-AIX-64-NEXT:    vmrgow v2, v3, v2530; P8-AIX-64-NEXT:    blr531;532; P8-AIX-32-LABEL: s2v_test_f3:533; P8-AIX-32:       # %bb.0: # %entry534; P8-AIX-32-NEXT:    slwi r4, r4, 2535; P8-AIX-32-NEXT:    lxsiwzx v3, r3, r4536; P8-AIX-32-NEXT:    vmrgow v2, v3, v2537; P8-AIX-32-NEXT:    blr538entry:539  %idxprom = sext i32 %Idx to i64540  %arrayidx = getelementptr inbounds float, ptr %f64, i64 %idxprom541  %0 = load float, ptr %arrayidx, align 8542  %vecins = insertelement <2 x float> %vec, float %0, i32 0543  ret <2 x float> %vecins544}545 546; Function Attrs: norecurse nounwind readonly547define <2 x float> @s2v_test_f4(ptr nocapture readonly %f64, <2 x float> %vec)  {548; P9LE-LABEL: s2v_test_f4:549; P9LE:       # %bb.0: # %entry550; P9LE-NEXT:    addi r3, r3, 4551; P9LE-NEXT:    xxmrglw vs1, v2, v2552; P9LE-NEXT:    lfiwzx f0, 0, r3553; P9LE-NEXT:    xxmrghw v2, vs1, vs0554; P9LE-NEXT:    blr555;556; P9BE-LABEL: s2v_test_f4:557; P9BE:       # %bb.0: # %entry558; P9BE-NEXT:    addi r3, r3, 4559; P9BE-NEXT:    lxsiwzx v3, 0, r3560; P9BE-NEXT:    vmrgow v2, v3, v2561; P9BE-NEXT:    blr562;563; P8LE-LABEL: s2v_test_f4:564; P8LE:       # %bb.0: # %entry565; P8LE-NEXT:    addi r3, r3, 4566; P8LE-NEXT:    xxmrglw vs0, v2, v2567; P8LE-NEXT:    lfiwzx f1, 0, r3568; P8LE-NEXT:    xxmrghw v2, vs0, vs1569; P8LE-NEXT:    blr570;571; P8BE-LABEL: s2v_test_f4:572; P8BE:       # %bb.0: # %entry573; P8BE-NEXT:    addi r3, r3, 4574; P8BE-NEXT:    lxsiwzx v3, 0, r3575; P8BE-NEXT:    vmrgow v2, v3, v2576; P8BE-NEXT:    blr577;578; AIX-LABEL: s2v_test_f4:579; AIX:       # %bb.0: # %entry580; AIX-NEXT:    addi r3, r3, 4581; AIX-NEXT:    lxsiwzx v3, 0, r3582; AIX-NEXT:    vmrgow v2, v3, v2583; AIX-NEXT:    blr584entry:585  %arrayidx = getelementptr inbounds float, ptr %f64, i64 1586  %0 = load float, ptr %arrayidx, align 8587  %vecins = insertelement <2 x float> %vec, float %0, i32 0588  ret <2 x float> %vecins589}590 591; Function Attrs: norecurse nounwind readonly592define <2 x float> @s2v_test_f5(<2 x float> %vec, ptr nocapture readonly %ptr1)  {593; P9LE-LABEL: s2v_test_f5:594; P9LE:       # %bb.0: # %entry595; P9LE-NEXT:    lfiwzx f0, 0, r5596; P9LE-NEXT:    xxmrglw vs1, v2, v2597; P9LE-NEXT:    xxmrghw v2, vs1, vs0598; P9LE-NEXT:    blr599;600; P9BE-LABEL: s2v_test_f5:601; P9BE:       # %bb.0: # %entry602; P9BE-NEXT:    lxsiwzx v3, 0, r5603; P9BE-NEXT:    vmrgow v2, v3, v2604; P9BE-NEXT:    blr605;606; P8LE-LABEL: s2v_test_f5:607; P8LE:       # %bb.0: # %entry608; P8LE-NEXT:    lfiwzx f1, 0, r5609; P8LE-NEXT:    xxmrglw vs0, v2, v2610; P8LE-NEXT:    xxmrghw v2, vs0, vs1611; P8LE-NEXT:    blr612;613; P8BE-LABEL: s2v_test_f5:614; P8BE:       # %bb.0: # %entry615; P8BE-NEXT:    lxsiwzx v3, 0, r5616; P8BE-NEXT:    vmrgow v2, v3, v2617; P8BE-NEXT:    blr618;619; AIX-LABEL: s2v_test_f5:620; AIX:       # %bb.0: # %entry621; AIX-NEXT:    lxsiwzx v3, 0, r3622; AIX-NEXT:    vmrgow v2, v3, v2623; AIX-NEXT:    blr624entry:625  %0 = load float, ptr %ptr1, align 8626  %vecins = insertelement <2 x float> %vec, float %0, i32 0627  ret <2 x float> %vecins628}629 630