brintos

brintos / llvm-project-archived public Read only

0
0
Text · 45.7 KiB · c6e808d Raw
1291 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \3; RUN:     -mcpu=pwr8 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr < %s | \4; RUN: FileCheck %s --check-prefix=CHECK-P85; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \6; RUN:     -mcpu=pwr9 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr < %s | \7; RUN: FileCheck %s --check-prefix=CHECK-P98; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu \9; RUN:     -mcpu=pwr9 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr < %s | \10; RUN: FileCheck %s --check-prefix=CHECK-BE11 12define i16 @test2elt(i64 %a.coerce) local_unnamed_addr #0 {13; CHECK-P8-LABEL: test2elt:14; CHECK-P8:       # %bb.0: # %entry15; CHECK-P8-NEXT:    mtfprd f0, r316; CHECK-P8-NEXT:    xxswapd v2, vs017; CHECK-P8-NEXT:    xscvspdpn f0, vs018; CHECK-P8-NEXT:    xscvdpsxws f0, f019; CHECK-P8-NEXT:    xxsldwi vs1, v2, v2, 320; CHECK-P8-NEXT:    xscvspdpn f1, vs121; CHECK-P8-NEXT:    xscvdpsxws f1, f122; CHECK-P8-NEXT:    mffprwz r3, f123; CHECK-P8-NEXT:    mtvsrd v2, r324; CHECK-P8-NEXT:    mffprwz r3, f025; CHECK-P8-NEXT:    mtvsrd v3, r326; CHECK-P8-NEXT:    vmrghb v2, v3, v227; CHECK-P8-NEXT:    xxswapd vs0, v228; CHECK-P8-NEXT:    mffprd r3, f029; CHECK-P8-NEXT:    clrldi r3, r3, 4830; CHECK-P8-NEXT:    sth r3, -2(r1)31; CHECK-P8-NEXT:    lhz r3, -2(r1)32; CHECK-P8-NEXT:    blr33;34; CHECK-P9-LABEL: test2elt:35; CHECK-P9:       # %bb.0: # %entry36; CHECK-P9-NEXT:    mtfprd f0, r337; CHECK-P9-NEXT:    xxswapd v2, vs038; CHECK-P9-NEXT:    xscvspdpn f0, vs039; CHECK-P9-NEXT:    xxsldwi vs1, v2, v2, 340; CHECK-P9-NEXT:    xscvdpsxws f0, f041; CHECK-P9-NEXT:    xscvspdpn f1, vs142; CHECK-P9-NEXT:    xscvdpsxws f1, f143; CHECK-P9-NEXT:    mffprwz r3, f144; CHECK-P9-NEXT:    mtvsrd v2, r345; CHECK-P9-NEXT:    mffprwz r3, f046; CHECK-P9-NEXT:    mtvsrd v3, r347; CHECK-P9-NEXT:    addi r3, r1, -248; CHECK-P9-NEXT:    vmrghb v2, v3, v249; CHECK-P9-NEXT:    vsldoi v2, v2, v2, 850; CHECK-P9-NEXT:    stxsihx v2, 0, r351; CHECK-P9-NEXT:    lhz r3, -2(r1)52; CHECK-P9-NEXT:    blr53;54; CHECK-BE-LABEL: test2elt:55; CHECK-BE:       # %bb.0: # %entry56; CHECK-BE-NEXT:    mtfprd f0, r357; CHECK-BE-NEXT:    addis r3, r2, .LCPI0_0@toc@ha58; CHECK-BE-NEXT:    xscvspdpn f2, vs059; CHECK-BE-NEXT:    xxsldwi vs0, vs0, vs0, 160; CHECK-BE-NEXT:    addi r3, r3, .LCPI0_0@toc@l61; CHECK-BE-NEXT:    lxv vs1, 0(r3)62; CHECK-BE-NEXT:    xscvspdpn f0, vs063; CHECK-BE-NEXT:    xscvdpsxws f2, f264; CHECK-BE-NEXT:    xscvdpsxws f0, f065; CHECK-BE-NEXT:    mffprwz r3, f266; CHECK-BE-NEXT:    mtfprwz f2, r367; CHECK-BE-NEXT:    mffprwz r3, f068; CHECK-BE-NEXT:    mtvsrwz v2, r369; CHECK-BE-NEXT:    addi r3, r1, -270; CHECK-BE-NEXT:    xxperm v2, vs2, vs171; CHECK-BE-NEXT:    vsldoi v2, v2, v2, 1072; CHECK-BE-NEXT:    stxsihx v2, 0, r373; CHECK-BE-NEXT:    lhz r3, -2(r1)74; CHECK-BE-NEXT:    blr75entry:76  %0 = bitcast i64 %a.coerce to <2 x float>77  %1 = fptoui <2 x float> %0 to <2 x i8>78  %2 = bitcast <2 x i8> %1 to i1679  ret i16 %280}81 82define i32 @test4elt(<4 x float> %a) local_unnamed_addr #1 {83; CHECK-P8-LABEL: test4elt:84; CHECK-P8:       # %bb.0: # %entry85; CHECK-P8-NEXT:    xxsldwi vs0, v2, v2, 386; CHECK-P8-NEXT:    xxswapd vs1, v287; CHECK-P8-NEXT:    xscvspdpn f0, vs088; CHECK-P8-NEXT:    xscvspdpn f1, vs189; CHECK-P8-NEXT:    xxsldwi vs2, v2, v2, 190; CHECK-P8-NEXT:    xscvdpsxws f0, f091; CHECK-P8-NEXT:    xscvdpsxws f1, f192; CHECK-P8-NEXT:    mffprwz r3, f093; CHECK-P8-NEXT:    xscvspdpn f0, v294; CHECK-P8-NEXT:    mtvsrd v3, r395; CHECK-P8-NEXT:    mffprwz r3, f196; CHECK-P8-NEXT:    xscvspdpn f1, vs297; CHECK-P8-NEXT:    xscvdpsxws f0, f098; CHECK-P8-NEXT:    mtvsrd v4, r399; CHECK-P8-NEXT:    mffprwz r3, f0100; CHECK-P8-NEXT:    xscvdpsxws f0, f1101; CHECK-P8-NEXT:    mtvsrd v2, r3102; CHECK-P8-NEXT:    mffprwz r3, f0103; CHECK-P8-NEXT:    vmrghb v3, v4, v3104; CHECK-P8-NEXT:    mtvsrd v4, r3105; CHECK-P8-NEXT:    vmrghb v2, v2, v4106; CHECK-P8-NEXT:    vmrglh v2, v2, v3107; CHECK-P8-NEXT:    xxswapd vs0, v2108; CHECK-P8-NEXT:    mffprwz r3, f0109; CHECK-P8-NEXT:    blr110;111; CHECK-P9-LABEL: test4elt:112; CHECK-P9:       # %bb.0: # %entry113; CHECK-P9-NEXT:    xxsldwi vs0, v2, v2, 3114; CHECK-P9-NEXT:    xscvspdpn f0, vs0115; CHECK-P9-NEXT:    xscvdpsxws f0, f0116; CHECK-P9-NEXT:    mffprwz r3, f0117; CHECK-P9-NEXT:    xxswapd vs0, v2118; CHECK-P9-NEXT:    mtvsrd v3, r3119; CHECK-P9-NEXT:    xscvspdpn f0, vs0120; CHECK-P9-NEXT:    xscvdpsxws f0, f0121; CHECK-P9-NEXT:    mffprwz r3, f0122; CHECK-P9-NEXT:    xscvspdpn f0, v2123; CHECK-P9-NEXT:    mtvsrd v4, r3124; CHECK-P9-NEXT:    xscvdpsxws f0, f0125; CHECK-P9-NEXT:    vmrghb v3, v4, v3126; CHECK-P9-NEXT:    mffprwz r3, f0127; CHECK-P9-NEXT:    xxsldwi vs0, v2, v2, 1128; CHECK-P9-NEXT:    mtvsrd v4, r3129; CHECK-P9-NEXT:    xscvspdpn f0, vs0130; CHECK-P9-NEXT:    xscvdpsxws f0, f0131; CHECK-P9-NEXT:    mffprwz r3, f0132; CHECK-P9-NEXT:    mtvsrd v2, r3133; CHECK-P9-NEXT:    li r3, 0134; CHECK-P9-NEXT:    vmrghb v2, v4, v2135; CHECK-P9-NEXT:    vmrglh v2, v2, v3136; CHECK-P9-NEXT:    vextuwrx r3, r3, v2137; CHECK-P9-NEXT:    blr138;139; CHECK-BE-LABEL: test4elt:140; CHECK-BE:       # %bb.0: # %entry141; CHECK-BE-NEXT:    xxsldwi vs1, v2, v2, 3142; CHECK-BE-NEXT:    addis r3, r2, .LCPI1_0@toc@ha143; CHECK-BE-NEXT:    xxsldwi vs2, v2, v2, 1144; CHECK-BE-NEXT:    addi r3, r3, .LCPI1_0@toc@l145; CHECK-BE-NEXT:    xscvspdpn f1, vs1146; CHECK-BE-NEXT:    xscvspdpn f2, vs2147; CHECK-BE-NEXT:    lxv vs0, 0(r3)148; CHECK-BE-NEXT:    xscvdpsxws f1, f1149; CHECK-BE-NEXT:    xscvdpsxws f2, f2150; CHECK-BE-NEXT:    mffprwz r3, f1151; CHECK-BE-NEXT:    xxswapd vs1, v2152; CHECK-BE-NEXT:    mtvsrwz v3, r3153; CHECK-BE-NEXT:    xscvspdpn f1, vs1154; CHECK-BE-NEXT:    xscvdpsxws f1, f1155; CHECK-BE-NEXT:    mffprwz r3, f1156; CHECK-BE-NEXT:    mtfprwz f1, r3157; CHECK-BE-NEXT:    xxperm v3, vs1, vs0158; CHECK-BE-NEXT:    xscvspdpn f1, v2159; CHECK-BE-NEXT:    xscvdpsxws f1, f1160; CHECK-BE-NEXT:    mffprwz r3, f1161; CHECK-BE-NEXT:    mtfprwz f1, r3162; CHECK-BE-NEXT:    mffprwz r3, f2163; CHECK-BE-NEXT:    mtvsrwz v2, r3164; CHECK-BE-NEXT:    li r3, 0165; CHECK-BE-NEXT:    xxperm v2, vs1, vs0166; CHECK-BE-NEXT:    vmrghh v2, v2, v3167; CHECK-BE-NEXT:    vextuwlx r3, r3, v2168; CHECK-BE-NEXT:    blr169entry:170  %0 = fptoui <4 x float> %a to <4 x i8>171  %1 = bitcast <4 x i8> %0 to i32172  ret i32 %1173}174 175define i64 @test8elt(ptr nocapture readonly) local_unnamed_addr #2 {176; CHECK-P8-LABEL: test8elt:177; CHECK-P8:       # %bb.0: # %entry178; CHECK-P8-NEXT:    lxvd2x vs0, 0, r3179; CHECK-P8-NEXT:    li r4, 16180; CHECK-P8-NEXT:    lxvd2x vs2, r3, r4181; CHECK-P8-NEXT:    xxswapd v3, vs0182; CHECK-P8-NEXT:    xscvspdpn f0, vs0183; CHECK-P8-NEXT:    xscvdpsxws f0, f0184; CHECK-P8-NEXT:    mffprwz r3, f0185; CHECK-P8-NEXT:    xscvspdpn f0, v3186; CHECK-P8-NEXT:    mtvsrd v4, r3187; CHECK-P8-NEXT:    xscvdpsxws f0, f0188; CHECK-P8-NEXT:    mffprwz r3, f0189; CHECK-P8-NEXT:    xxsldwi vs1, v3, v3, 3190; CHECK-P8-NEXT:    xscvspdpn f1, vs1191; CHECK-P8-NEXT:    xscvdpsxws f1, f1192; CHECK-P8-NEXT:    xxsldwi vs3, v3, v3, 1193; CHECK-P8-NEXT:    mffprwz r4, f1194; CHECK-P8-NEXT:    xscvspdpn f1, vs3195; CHECK-P8-NEXT:    xscvdpsxws f1, f1196; CHECK-P8-NEXT:    xscvspdpn f0, vs2197; CHECK-P8-NEXT:    xxswapd v2, vs2198; CHECK-P8-NEXT:    mtvsrd v5, r4199; CHECK-P8-NEXT:    mffprwz r4, f1200; CHECK-P8-NEXT:    mtvsrd v3, r3201; CHECK-P8-NEXT:    xscvdpsxws f0, f0202; CHECK-P8-NEXT:    mffprwz r3, f0203; CHECK-P8-NEXT:    xscvspdpn f0, v2204; CHECK-P8-NEXT:    xscvdpsxws f0, f0205; CHECK-P8-NEXT:    xxsldwi vs4, v2, v2, 3206; CHECK-P8-NEXT:    xscvspdpn f1, vs4207; CHECK-P8-NEXT:    xscvdpsxws f1, f1208; CHECK-P8-NEXT:    xxsldwi vs5, v2, v2, 1209; CHECK-P8-NEXT:    vmrghb v4, v4, v5210; CHECK-P8-NEXT:    mtvsrd v5, r4211; CHECK-P8-NEXT:    mffprwz r4, f1212; CHECK-P8-NEXT:    xscvspdpn f1, vs5213; CHECK-P8-NEXT:    mtvsrd v0, r4214; CHECK-P8-NEXT:    vmrghb v3, v3, v5215; CHECK-P8-NEXT:    mtvsrd v5, r3216; CHECK-P8-NEXT:    mffprwz r3, f0217; CHECK-P8-NEXT:    xscvdpsxws f0, f1218; CHECK-P8-NEXT:    mtvsrd v2, r3219; CHECK-P8-NEXT:    mffprwz r3, f0220; CHECK-P8-NEXT:    vmrglh v3, v3, v4221; CHECK-P8-NEXT:    vmrghb v5, v5, v0222; CHECK-P8-NEXT:    mtvsrd v0, r3223; CHECK-P8-NEXT:    vmrghb v2, v2, v0224; CHECK-P8-NEXT:    vmrglh v2, v2, v5225; CHECK-P8-NEXT:    xxmrglw vs0, v2, v3226; CHECK-P8-NEXT:    xxswapd vs0, vs0227; CHECK-P8-NEXT:    mffprd r3, f0228; CHECK-P8-NEXT:    blr229;230; CHECK-P9-LABEL: test8elt:231; CHECK-P9:       # %bb.0: # %entry232; CHECK-P9-NEXT:    lxv vs1, 0(r3)233; CHECK-P9-NEXT:    lxv vs0, 16(r3)234; CHECK-P9-NEXT:    xxsldwi vs2, vs1, vs1, 3235; CHECK-P9-NEXT:    xscvspdpn f2, vs2236; CHECK-P9-NEXT:    xscvdpsxws f2, f2237; CHECK-P9-NEXT:    mffprwz r3, f2238; CHECK-P9-NEXT:    xxswapd vs2, vs1239; CHECK-P9-NEXT:    mtvsrd v2, r3240; CHECK-P9-NEXT:    xscvspdpn f2, vs2241; CHECK-P9-NEXT:    xscvdpsxws f2, f2242; CHECK-P9-NEXT:    mffprwz r3, f2243; CHECK-P9-NEXT:    xscvspdpn f2, vs1244; CHECK-P9-NEXT:    xxsldwi vs1, vs1, vs1, 1245; CHECK-P9-NEXT:    mtvsrd v3, r3246; CHECK-P9-NEXT:    xscvspdpn f1, vs1247; CHECK-P9-NEXT:    xscvdpsxws f2, f2248; CHECK-P9-NEXT:    vmrghb v2, v3, v2249; CHECK-P9-NEXT:    xscvdpsxws f1, f1250; CHECK-P9-NEXT:    mffprwz r3, f2251; CHECK-P9-NEXT:    mtvsrd v3, r3252; CHECK-P9-NEXT:    mffprwz r3, f1253; CHECK-P9-NEXT:    xxsldwi vs1, vs0, vs0, 3254; CHECK-P9-NEXT:    mtvsrd v4, r3255; CHECK-P9-NEXT:    xscvspdpn f1, vs1256; CHECK-P9-NEXT:    vmrghb v3, v3, v4257; CHECK-P9-NEXT:    xscvdpsxws f1, f1258; CHECK-P9-NEXT:    vmrglh v2, v3, v2259; CHECK-P9-NEXT:    mffprwz r3, f1260; CHECK-P9-NEXT:    xxswapd vs1, vs0261; CHECK-P9-NEXT:    mtvsrd v3, r3262; CHECK-P9-NEXT:    xscvspdpn f1, vs1263; CHECK-P9-NEXT:    xscvdpsxws f1, f1264; CHECK-P9-NEXT:    mffprwz r3, f1265; CHECK-P9-NEXT:    xscvspdpn f1, vs0266; CHECK-P9-NEXT:    xxsldwi vs0, vs0, vs0, 1267; CHECK-P9-NEXT:    mtvsrd v4, r3268; CHECK-P9-NEXT:    xscvspdpn f0, vs0269; CHECK-P9-NEXT:    xscvdpsxws f1, f1270; CHECK-P9-NEXT:    vmrghb v3, v4, v3271; CHECK-P9-NEXT:    xscvdpsxws f0, f0272; CHECK-P9-NEXT:    mffprwz r3, f1273; CHECK-P9-NEXT:    mtvsrd v4, r3274; CHECK-P9-NEXT:    mffprwz r3, f0275; CHECK-P9-NEXT:    mtvsrd v5, r3276; CHECK-P9-NEXT:    vmrghb v4, v4, v5277; CHECK-P9-NEXT:    vmrglh v3, v4, v3278; CHECK-P9-NEXT:    xxmrglw vs0, v3, v2279; CHECK-P9-NEXT:    mfvsrld r3, vs0280; CHECK-P9-NEXT:    blr281;282; CHECK-BE-LABEL: test8elt:283; CHECK-BE:       # %bb.0: # %entry284; CHECK-BE-NEXT:    lxv vs1, 16(r3)285; CHECK-BE-NEXT:    lxv vs0, 0(r3)286; CHECK-BE-NEXT:    addis r3, r2, .LCPI2_0@toc@ha287; CHECK-BE-NEXT:    addi r3, r3, .LCPI2_0@toc@l288; CHECK-BE-NEXT:    lxv vs2, 0(r3)289; CHECK-BE-NEXT:    xxsldwi vs3, vs1, vs1, 3290; CHECK-BE-NEXT:    xscvspdpn f3, vs3291; CHECK-BE-NEXT:    xscvdpsxws f3, f3292; CHECK-BE-NEXT:    mffprwz r3, f3293; CHECK-BE-NEXT:    xxswapd vs3, vs1294; CHECK-BE-NEXT:    mtvsrwz v2, r3295; CHECK-BE-NEXT:    xscvspdpn f3, vs3296; CHECK-BE-NEXT:    xscvdpsxws f3, f3297; CHECK-BE-NEXT:    mffprwz r3, f3298; CHECK-BE-NEXT:    mtfprwz f3, r3299; CHECK-BE-NEXT:    xxperm v2, vs3, vs2300; CHECK-BE-NEXT:    xscvspdpn f3, vs1301; CHECK-BE-NEXT:    xxsldwi vs1, vs1, vs1, 1302; CHECK-BE-NEXT:    xscvspdpn f1, vs1303; CHECK-BE-NEXT:    xscvdpsxws f3, f3304; CHECK-BE-NEXT:    xscvdpsxws f1, f1305; CHECK-BE-NEXT:    mffprwz r3, f3306; CHECK-BE-NEXT:    mtfprwz f3, r3307; CHECK-BE-NEXT:    mffprwz r3, f1308; CHECK-BE-NEXT:    xxsldwi vs1, vs0, vs0, 3309; CHECK-BE-NEXT:    mtvsrwz v3, r3310; CHECK-BE-NEXT:    xscvspdpn f1, vs1311; CHECK-BE-NEXT:    xxperm v3, vs3, vs2312; CHECK-BE-NEXT:    xscvdpsxws f1, f1313; CHECK-BE-NEXT:    vmrghh v2, v3, v2314; CHECK-BE-NEXT:    mffprwz r3, f1315; CHECK-BE-NEXT:    xxswapd vs1, vs0316; CHECK-BE-NEXT:    mtvsrwz v3, r3317; CHECK-BE-NEXT:    xscvspdpn f1, vs1318; CHECK-BE-NEXT:    xscvdpsxws f1, f1319; CHECK-BE-NEXT:    mffprwz r3, f1320; CHECK-BE-NEXT:    mtfprwz f1, r3321; CHECK-BE-NEXT:    xxperm v3, vs1, vs2322; CHECK-BE-NEXT:    xscvspdpn f1, vs0323; CHECK-BE-NEXT:    xxsldwi vs0, vs0, vs0, 1324; CHECK-BE-NEXT:    xscvspdpn f0, vs0325; CHECK-BE-NEXT:    xscvdpsxws f1, f1326; CHECK-BE-NEXT:    xscvdpsxws f0, f0327; CHECK-BE-NEXT:    mffprwz r3, f1328; CHECK-BE-NEXT:    mtfprwz f1, r3329; CHECK-BE-NEXT:    mffprwz r3, f0330; CHECK-BE-NEXT:    mtvsrwz v4, r3331; CHECK-BE-NEXT:    xxperm v4, vs1, vs2332; CHECK-BE-NEXT:    vmrghh v3, v4, v3333; CHECK-BE-NEXT:    xxmrghw vs0, v3, v2334; CHECK-BE-NEXT:    mffprd r3, f0335; CHECK-BE-NEXT:    blr336entry:337  %a = load <8 x float>, ptr %0, align 32338  %1 = fptoui <8 x float> %a to <8 x i8>339  %2 = bitcast <8 x i8> %1 to i64340  ret i64 %2341}342 343define <16 x i8> @test16elt(ptr nocapture readonly) local_unnamed_addr #3 {344; CHECK-P8-LABEL: test16elt:345; CHECK-P8:       # %bb.0: # %entry346; CHECK-P8-NEXT:    lxvd2x vs1, 0, r3347; CHECK-P8-NEXT:    li r4, 16348; CHECK-P8-NEXT:    lxvd2x vs0, r3, r4349; CHECK-P8-NEXT:    li r4, 32350; CHECK-P8-NEXT:    lxvd2x vs6, r3, r4351; CHECK-P8-NEXT:    li r4, 48352; CHECK-P8-NEXT:    lxvd2x vs8, r3, r4353; CHECK-P8-NEXT:    xxswapd v3, vs1354; CHECK-P8-NEXT:    xscvspdpn f1, vs1355; CHECK-P8-NEXT:    xscvdpsxws f1, f1356; CHECK-P8-NEXT:    mffprwz r3, f1357; CHECK-P8-NEXT:    xscvspdpn f1, v3358; CHECK-P8-NEXT:    mtvsrd v0, r3359; CHECK-P8-NEXT:    xscvdpsxws f1, f1360; CHECK-P8-NEXT:    mffprwz r3, f1361; CHECK-P8-NEXT:    xxsldwi vs2, v3, v3, 3362; CHECK-P8-NEXT:    xscvspdpn f2, vs2363; CHECK-P8-NEXT:    xscvdpsxws f2, f2364; CHECK-P8-NEXT:    xxswapd v2, vs0365; CHECK-P8-NEXT:    xxsldwi vs3, v3, v3, 1366; CHECK-P8-NEXT:    xscvspdpn f0, vs0367; CHECK-P8-NEXT:    mffprwz r4, f2368; CHECK-P8-NEXT:    xscvspdpn f2, vs3369; CHECK-P8-NEXT:    xscvdpsxws f0, f0370; CHECK-P8-NEXT:    xscvdpsxws f2, f2371; CHECK-P8-NEXT:    xxsldwi vs4, v2, v2, 3372; CHECK-P8-NEXT:    mtvsrd v1, r4373; CHECK-P8-NEXT:    xscvspdpn f1, vs4374; CHECK-P8-NEXT:    xxsldwi vs5, v2, v2, 1375; CHECK-P8-NEXT:    xxswapd v5, vs6376; CHECK-P8-NEXT:    mffprwz r4, f2377; CHECK-P8-NEXT:    xxswapd v4, vs8378; CHECK-P8-NEXT:    mtvsrd v3, r3379; CHECK-P8-NEXT:    mffprwz r3, f0380; CHECK-P8-NEXT:    xscvspdpn f0, v2381; CHECK-P8-NEXT:    xxsldwi vs7, v5, v5, 3382; CHECK-P8-NEXT:    xxsldwi vs9, v5, v5, 1383; CHECK-P8-NEXT:    xscvdpsxws f1, f1384; CHECK-P8-NEXT:    xscvdpsxws f0, f0385; CHECK-P8-NEXT:    xxsldwi vs10, v4, v4, 3386; CHECK-P8-NEXT:    xxsldwi vs11, v4, v4, 1387; CHECK-P8-NEXT:    vmrghb v0, v0, v1388; CHECK-P8-NEXT:    mtvsrd v1, r4389; CHECK-P8-NEXT:    mffprwz r4, f1390; CHECK-P8-NEXT:    xscvspdpn f1, vs5391; CHECK-P8-NEXT:    mtvsrd v6, r4392; CHECK-P8-NEXT:    xscvdpsxws f1, f1393; CHECK-P8-NEXT:    mffprwz r4, f1394; CHECK-P8-NEXT:    xscvspdpn f1, vs7395; CHECK-P8-NEXT:    xscvdpsxws f1, f1396; CHECK-P8-NEXT:    vmrghb v3, v3, v1397; CHECK-P8-NEXT:    mtvsrd v1, r3398; CHECK-P8-NEXT:    mffprwz r3, f0399; CHECK-P8-NEXT:    xscvspdpn f0, vs6400; CHECK-P8-NEXT:    xscvdpsxws f0, f0401; CHECK-P8-NEXT:    mtvsrd v2, r3402; CHECK-P8-NEXT:    mffprwz r3, f0403; CHECK-P8-NEXT:    xscvspdpn f0, v5404; CHECK-P8-NEXT:    vmrglh v3, v3, v0405; CHECK-P8-NEXT:    xscvdpsxws f0, f0406; CHECK-P8-NEXT:    vmrghb v1, v1, v6407; CHECK-P8-NEXT:    mtvsrd v6, r4408; CHECK-P8-NEXT:    mffprwz r4, f1409; CHECK-P8-NEXT:    xscvspdpn f1, vs9410; CHECK-P8-NEXT:    mtvsrd v7, r4411; CHECK-P8-NEXT:    xscvdpsxws f1, f1412; CHECK-P8-NEXT:    mffprwz r4, f1413; CHECK-P8-NEXT:    vmrghb v2, v2, v6414; CHECK-P8-NEXT:    mtvsrd v6, r3415; CHECK-P8-NEXT:    mffprwz r3, f0416; CHECK-P8-NEXT:    xscvspdpn f0, vs10417; CHECK-P8-NEXT:    xscvdpsxws f0, f0418; CHECK-P8-NEXT:    mtvsrd v5, r3419; CHECK-P8-NEXT:    mffprwz r3, f0420; CHECK-P8-NEXT:    xscvspdpn f0, vs8421; CHECK-P8-NEXT:    vmrglh v2, v2, v1422; CHECK-P8-NEXT:    xscvdpsxws f0, f0423; CHECK-P8-NEXT:    vmrghb v6, v6, v7424; CHECK-P8-NEXT:    mtvsrd v7, r4425; CHECK-P8-NEXT:    vmrghb v5, v5, v7426; CHECK-P8-NEXT:    mtvsrd v7, r3427; CHECK-P8-NEXT:    mffprwz r3, f0428; CHECK-P8-NEXT:    xscvspdpn f0, v4429; CHECK-P8-NEXT:    mtvsrd v8, r3430; CHECK-P8-NEXT:    xscvdpsxws f0, f0431; CHECK-P8-NEXT:    mffprwz r3, f0432; CHECK-P8-NEXT:    xscvspdpn f0, vs11433; CHECK-P8-NEXT:    vmrglh v5, v5, v6434; CHECK-P8-NEXT:    mtvsrd v4, r3435; CHECK-P8-NEXT:    xscvdpsxws f0, f0436; CHECK-P8-NEXT:    mffprwz r3, f0437; CHECK-P8-NEXT:    vmrghb v7, v8, v7438; CHECK-P8-NEXT:    mtvsrd v8, r3439; CHECK-P8-NEXT:    xxmrglw vs0, v2, v3440; CHECK-P8-NEXT:    vmrghb v4, v4, v8441; CHECK-P8-NEXT:    vmrglh v4, v4, v7442; CHECK-P8-NEXT:    xxmrglw vs1, v4, v5443; CHECK-P8-NEXT:    xxmrgld v2, vs1, vs0444; CHECK-P8-NEXT:    blr445;446; CHECK-P9-LABEL: test16elt:447; CHECK-P9:       # %bb.0: # %entry448; CHECK-P9-NEXT:    lxv vs3, 0(r3)449; CHECK-P9-NEXT:    lxv vs0, 48(r3)450; CHECK-P9-NEXT:    lxv vs1, 32(r3)451; CHECK-P9-NEXT:    lxv vs2, 16(r3)452; CHECK-P9-NEXT:    xxsldwi vs4, vs3, vs3, 3453; CHECK-P9-NEXT:    xscvspdpn f4, vs4454; CHECK-P9-NEXT:    xscvdpsxws f4, f4455; CHECK-P9-NEXT:    mffprwz r3, f4456; CHECK-P9-NEXT:    xxswapd vs4, vs3457; CHECK-P9-NEXT:    mtvsrd v2, r3458; CHECK-P9-NEXT:    xscvspdpn f4, vs4459; CHECK-P9-NEXT:    xscvdpsxws f4, f4460; CHECK-P9-NEXT:    mffprwz r3, f4461; CHECK-P9-NEXT:    xscvspdpn f4, vs3462; CHECK-P9-NEXT:    xxsldwi vs3, vs3, vs3, 1463; CHECK-P9-NEXT:    mtvsrd v3, r3464; CHECK-P9-NEXT:    xscvspdpn f3, vs3465; CHECK-P9-NEXT:    xscvdpsxws f4, f4466; CHECK-P9-NEXT:    vmrghb v2, v3, v2467; CHECK-P9-NEXT:    xscvdpsxws f3, f3468; CHECK-P9-NEXT:    mffprwz r3, f4469; CHECK-P9-NEXT:    mtvsrd v3, r3470; CHECK-P9-NEXT:    mffprwz r3, f3471; CHECK-P9-NEXT:    xxsldwi vs3, vs2, vs2, 3472; CHECK-P9-NEXT:    mtvsrd v4, r3473; CHECK-P9-NEXT:    xscvspdpn f3, vs3474; CHECK-P9-NEXT:    vmrghb v3, v3, v4475; CHECK-P9-NEXT:    xscvdpsxws f3, f3476; CHECK-P9-NEXT:    vmrglh v2, v3, v2477; CHECK-P9-NEXT:    mffprwz r3, f3478; CHECK-P9-NEXT:    xxswapd vs3, vs2479; CHECK-P9-NEXT:    mtvsrd v3, r3480; CHECK-P9-NEXT:    xscvspdpn f3, vs3481; CHECK-P9-NEXT:    xscvdpsxws f3, f3482; CHECK-P9-NEXT:    mffprwz r3, f3483; CHECK-P9-NEXT:    xscvspdpn f3, vs2484; CHECK-P9-NEXT:    xxsldwi vs2, vs2, vs2, 1485; CHECK-P9-NEXT:    mtvsrd v4, r3486; CHECK-P9-NEXT:    xscvdpsxws f3, f3487; CHECK-P9-NEXT:    xscvspdpn f2, vs2488; CHECK-P9-NEXT:    vmrghb v3, v4, v3489; CHECK-P9-NEXT:    xscvdpsxws f2, f2490; CHECK-P9-NEXT:    mffprwz r3, f3491; CHECK-P9-NEXT:    xxsldwi vs3, vs1, vs1, 3492; CHECK-P9-NEXT:    mtvsrd v4, r3493; CHECK-P9-NEXT:    xscvspdpn f3, vs3494; CHECK-P9-NEXT:    mffprwz r3, f2495; CHECK-P9-NEXT:    mtvsrd v5, r3496; CHECK-P9-NEXT:    xscvdpsxws f3, f3497; CHECK-P9-NEXT:    vmrghb v4, v4, v5498; CHECK-P9-NEXT:    vmrglh v3, v4, v3499; CHECK-P9-NEXT:    mffprwz r3, f3500; CHECK-P9-NEXT:    xxswapd vs3, vs1501; CHECK-P9-NEXT:    xxmrglw vs2, v3, v2502; CHECK-P9-NEXT:    mtvsrd v2, r3503; CHECK-P9-NEXT:    xscvspdpn f3, vs3504; CHECK-P9-NEXT:    xscvdpsxws f3, f3505; CHECK-P9-NEXT:    mffprwz r3, f3506; CHECK-P9-NEXT:    xscvspdpn f3, vs1507; CHECK-P9-NEXT:    xxsldwi vs1, vs1, vs1, 1508; CHECK-P9-NEXT:    mtvsrd v3, r3509; CHECK-P9-NEXT:    xscvspdpn f1, vs1510; CHECK-P9-NEXT:    xscvdpsxws f3, f3511; CHECK-P9-NEXT:    vmrghb v2, v3, v2512; CHECK-P9-NEXT:    xscvdpsxws f1, f1513; CHECK-P9-NEXT:    mffprwz r3, f3514; CHECK-P9-NEXT:    mtvsrd v3, r3515; CHECK-P9-NEXT:    mffprwz r3, f1516; CHECK-P9-NEXT:    xxsldwi vs1, vs0, vs0, 3517; CHECK-P9-NEXT:    mtvsrd v4, r3518; CHECK-P9-NEXT:    xscvspdpn f1, vs1519; CHECK-P9-NEXT:    vmrghb v3, v3, v4520; CHECK-P9-NEXT:    xscvdpsxws f1, f1521; CHECK-P9-NEXT:    vmrglh v2, v3, v2522; CHECK-P9-NEXT:    mffprwz r3, f1523; CHECK-P9-NEXT:    xxswapd vs1, vs0524; CHECK-P9-NEXT:    mtvsrd v3, r3525; CHECK-P9-NEXT:    xscvspdpn f1, vs1526; CHECK-P9-NEXT:    xscvdpsxws f1, f1527; CHECK-P9-NEXT:    mffprwz r3, f1528; CHECK-P9-NEXT:    xscvspdpn f1, vs0529; CHECK-P9-NEXT:    xxsldwi vs0, vs0, vs0, 1530; CHECK-P9-NEXT:    mtvsrd v4, r3531; CHECK-P9-NEXT:    xscvspdpn f0, vs0532; CHECK-P9-NEXT:    xscvdpsxws f1, f1533; CHECK-P9-NEXT:    vmrghb v3, v4, v3534; CHECK-P9-NEXT:    xscvdpsxws f0, f0535; CHECK-P9-NEXT:    mffprwz r3, f1536; CHECK-P9-NEXT:    mtvsrd v4, r3537; CHECK-P9-NEXT:    mffprwz r3, f0538; CHECK-P9-NEXT:    mtvsrd v5, r3539; CHECK-P9-NEXT:    vmrghb v4, v4, v5540; CHECK-P9-NEXT:    vmrglh v3, v4, v3541; CHECK-P9-NEXT:    xxmrglw vs0, v3, v2542; CHECK-P9-NEXT:    xxmrgld v2, vs0, vs2543; CHECK-P9-NEXT:    blr544;545; CHECK-BE-LABEL: test16elt:546; CHECK-BE:       # %bb.0: # %entry547; CHECK-BE-NEXT:    lxv vs3, 48(r3)548; CHECK-BE-NEXT:    lxv vs0, 0(r3)549; CHECK-BE-NEXT:    lxv vs1, 16(r3)550; CHECK-BE-NEXT:    lxv vs2, 32(r3)551; CHECK-BE-NEXT:    addis r3, r2, .LCPI3_0@toc@ha552; CHECK-BE-NEXT:    addi r3, r3, .LCPI3_0@toc@l553; CHECK-BE-NEXT:    lxv vs4, 0(r3)554; CHECK-BE-NEXT:    xxsldwi vs5, vs3, vs3, 3555; CHECK-BE-NEXT:    xscvspdpn f5, vs5556; CHECK-BE-NEXT:    xscvdpsxws f5, f5557; CHECK-BE-NEXT:    mffprwz r3, f5558; CHECK-BE-NEXT:    xxswapd vs5, vs3559; CHECK-BE-NEXT:    mtvsrwz v2, r3560; CHECK-BE-NEXT:    xscvspdpn f5, vs5561; CHECK-BE-NEXT:    xscvdpsxws f5, f5562; CHECK-BE-NEXT:    mffprwz r3, f5563; CHECK-BE-NEXT:    mtfprwz f5, r3564; CHECK-BE-NEXT:    xxperm v2, vs5, vs4565; CHECK-BE-NEXT:    xscvspdpn f5, vs3566; CHECK-BE-NEXT:    xxsldwi vs3, vs3, vs3, 1567; CHECK-BE-NEXT:    xscvspdpn f3, vs3568; CHECK-BE-NEXT:    xscvdpsxws f5, f5569; CHECK-BE-NEXT:    xscvdpsxws f3, f3570; CHECK-BE-NEXT:    mffprwz r3, f5571; CHECK-BE-NEXT:    mtfprwz f5, r3572; CHECK-BE-NEXT:    mffprwz r3, f3573; CHECK-BE-NEXT:    xxsldwi vs3, vs2, vs2, 3574; CHECK-BE-NEXT:    mtvsrwz v3, r3575; CHECK-BE-NEXT:    xscvspdpn f3, vs3576; CHECK-BE-NEXT:    xxperm v3, vs5, vs4577; CHECK-BE-NEXT:    xscvdpsxws f3, f3578; CHECK-BE-NEXT:    vmrghh v2, v3, v2579; CHECK-BE-NEXT:    mffprwz r3, f3580; CHECK-BE-NEXT:    xxswapd vs3, vs2581; CHECK-BE-NEXT:    mtvsrwz v3, r3582; CHECK-BE-NEXT:    xscvspdpn f3, vs3583; CHECK-BE-NEXT:    xscvdpsxws f3, f3584; CHECK-BE-NEXT:    mffprwz r3, f3585; CHECK-BE-NEXT:    mtfprwz f3, r3586; CHECK-BE-NEXT:    xxperm v3, vs3, vs4587; CHECK-BE-NEXT:    xscvspdpn f3, vs2588; CHECK-BE-NEXT:    xxsldwi vs2, vs2, vs2, 1589; CHECK-BE-NEXT:    xscvspdpn f2, vs2590; CHECK-BE-NEXT:    xscvdpsxws f3, f3591; CHECK-BE-NEXT:    xscvdpsxws f2, f2592; CHECK-BE-NEXT:    mffprwz r3, f3593; CHECK-BE-NEXT:    mtfprwz f3, r3594; CHECK-BE-NEXT:    mffprwz r3, f2595; CHECK-BE-NEXT:    mtvsrwz v4, r3596; CHECK-BE-NEXT:    xxperm v4, vs3, vs4597; CHECK-BE-NEXT:    xxsldwi vs3, vs1, vs1, 3598; CHECK-BE-NEXT:    xscvspdpn f3, vs3599; CHECK-BE-NEXT:    vmrghh v3, v4, v3600; CHECK-BE-NEXT:    xscvdpsxws f3, f3601; CHECK-BE-NEXT:    xxmrghw vs2, v3, v2602; CHECK-BE-NEXT:    mffprwz r3, f3603; CHECK-BE-NEXT:    xxswapd vs3, vs1604; CHECK-BE-NEXT:    mtvsrwz v2, r3605; CHECK-BE-NEXT:    xscvspdpn f3, vs3606; CHECK-BE-NEXT:    xscvdpsxws f3, f3607; CHECK-BE-NEXT:    mffprwz r3, f3608; CHECK-BE-NEXT:    mtfprwz f3, r3609; CHECK-BE-NEXT:    xxperm v2, vs3, vs4610; CHECK-BE-NEXT:    xscvspdpn f3, vs1611; CHECK-BE-NEXT:    xxsldwi vs1, vs1, vs1, 1612; CHECK-BE-NEXT:    xscvspdpn f1, vs1613; CHECK-BE-NEXT:    xscvdpsxws f3, f3614; CHECK-BE-NEXT:    xscvdpsxws f1, f1615; CHECK-BE-NEXT:    mffprwz r3, f3616; CHECK-BE-NEXT:    mtfprwz f3, r3617; CHECK-BE-NEXT:    mffprwz r3, f1618; CHECK-BE-NEXT:    xxsldwi vs1, vs0, vs0, 3619; CHECK-BE-NEXT:    mtvsrwz v3, r3620; CHECK-BE-NEXT:    xscvspdpn f1, vs1621; CHECK-BE-NEXT:    xxperm v3, vs3, vs4622; CHECK-BE-NEXT:    xscvdpsxws f1, f1623; CHECK-BE-NEXT:    vmrghh v2, v3, v2624; CHECK-BE-NEXT:    mffprwz r3, f1625; CHECK-BE-NEXT:    xxswapd vs1, vs0626; CHECK-BE-NEXT:    mtvsrwz v3, r3627; CHECK-BE-NEXT:    xscvspdpn f1, vs1628; CHECK-BE-NEXT:    xscvdpsxws f1, f1629; CHECK-BE-NEXT:    mffprwz r3, f1630; CHECK-BE-NEXT:    mtfprwz f1, r3631; CHECK-BE-NEXT:    xxperm v3, vs1, vs4632; CHECK-BE-NEXT:    xscvspdpn f1, vs0633; CHECK-BE-NEXT:    xxsldwi vs0, vs0, vs0, 1634; CHECK-BE-NEXT:    xscvspdpn f0, vs0635; CHECK-BE-NEXT:    xscvdpsxws f1, f1636; CHECK-BE-NEXT:    xscvdpsxws f0, f0637; CHECK-BE-NEXT:    mffprwz r3, f1638; CHECK-BE-NEXT:    mtfprwz f1, r3639; CHECK-BE-NEXT:    mffprwz r3, f0640; CHECK-BE-NEXT:    mtvsrwz v4, r3641; CHECK-BE-NEXT:    xxperm v4, vs1, vs4642; CHECK-BE-NEXT:    vmrghh v3, v4, v3643; CHECK-BE-NEXT:    xxmrghw vs0, v3, v2644; CHECK-BE-NEXT:    xxmrghd v2, vs0, vs2645; CHECK-BE-NEXT:    blr646entry:647  %a = load <16 x float>, ptr %0, align 64648  %1 = fptoui <16 x float> %a to <16 x i8>649  ret <16 x i8> %1650}651 652define i16 @test2elt_signed(i64 %a.coerce) local_unnamed_addr #0 {653; CHECK-P8-LABEL: test2elt_signed:654; CHECK-P8:       # %bb.0: # %entry655; CHECK-P8-NEXT:    mtfprd f0, r3656; CHECK-P8-NEXT:    xxswapd v2, vs0657; CHECK-P8-NEXT:    xscvspdpn f0, vs0658; CHECK-P8-NEXT:    xscvdpsxws f0, f0659; CHECK-P8-NEXT:    xxsldwi vs1, v2, v2, 3660; CHECK-P8-NEXT:    xscvspdpn f1, vs1661; CHECK-P8-NEXT:    xscvdpsxws f1, f1662; CHECK-P8-NEXT:    mffprwz r3, f1663; CHECK-P8-NEXT:    mtvsrd v2, r3664; CHECK-P8-NEXT:    mffprwz r3, f0665; CHECK-P8-NEXT:    mtvsrd v3, r3666; CHECK-P8-NEXT:    vmrghb v2, v3, v2667; CHECK-P8-NEXT:    xxswapd vs0, v2668; CHECK-P8-NEXT:    mffprd r3, f0669; CHECK-P8-NEXT:    clrldi r3, r3, 48670; CHECK-P8-NEXT:    sth r3, -2(r1)671; CHECK-P8-NEXT:    lhz r3, -2(r1)672; CHECK-P8-NEXT:    blr673;674; CHECK-P9-LABEL: test2elt_signed:675; CHECK-P9:       # %bb.0: # %entry676; CHECK-P9-NEXT:    mtfprd f0, r3677; CHECK-P9-NEXT:    xxswapd v2, vs0678; CHECK-P9-NEXT:    xscvspdpn f0, vs0679; CHECK-P9-NEXT:    xxsldwi vs1, v2, v2, 3680; CHECK-P9-NEXT:    xscvdpsxws f0, f0681; CHECK-P9-NEXT:    xscvspdpn f1, vs1682; CHECK-P9-NEXT:    xscvdpsxws f1, f1683; CHECK-P9-NEXT:    mffprwz r3, f1684; CHECK-P9-NEXT:    mtvsrd v2, r3685; CHECK-P9-NEXT:    mffprwz r3, f0686; CHECK-P9-NEXT:    mtvsrd v3, r3687; CHECK-P9-NEXT:    addi r3, r1, -2688; CHECK-P9-NEXT:    vmrghb v2, v3, v2689; CHECK-P9-NEXT:    vsldoi v2, v2, v2, 8690; CHECK-P9-NEXT:    stxsihx v2, 0, r3691; CHECK-P9-NEXT:    lhz r3, -2(r1)692; CHECK-P9-NEXT:    blr693;694; CHECK-BE-LABEL: test2elt_signed:695; CHECK-BE:       # %bb.0: # %entry696; CHECK-BE-NEXT:    mtfprd f0, r3697; CHECK-BE-NEXT:    addis r3, r2, .LCPI4_0@toc@ha698; CHECK-BE-NEXT:    xscvspdpn f2, vs0699; CHECK-BE-NEXT:    xxsldwi vs0, vs0, vs0, 1700; CHECK-BE-NEXT:    addi r3, r3, .LCPI4_0@toc@l701; CHECK-BE-NEXT:    lxv vs1, 0(r3)702; CHECK-BE-NEXT:    xscvspdpn f0, vs0703; CHECK-BE-NEXT:    xscvdpsxws f2, f2704; CHECK-BE-NEXT:    xscvdpsxws f0, f0705; CHECK-BE-NEXT:    mffprwz r3, f2706; CHECK-BE-NEXT:    mtfprwz f2, r3707; CHECK-BE-NEXT:    mffprwz r3, f0708; CHECK-BE-NEXT:    mtvsrwz v2, r3709; CHECK-BE-NEXT:    addi r3, r1, -2710; CHECK-BE-NEXT:    xxperm v2, vs2, vs1711; CHECK-BE-NEXT:    vsldoi v2, v2, v2, 10712; CHECK-BE-NEXT:    stxsihx v2, 0, r3713; CHECK-BE-NEXT:    lhz r3, -2(r1)714; CHECK-BE-NEXT:    blr715entry:716  %0 = bitcast i64 %a.coerce to <2 x float>717  %1 = fptosi <2 x float> %0 to <2 x i8>718  %2 = bitcast <2 x i8> %1 to i16719  ret i16 %2720}721 722define i32 @test4elt_signed(<4 x float> %a) local_unnamed_addr #1 {723; CHECK-P8-LABEL: test4elt_signed:724; CHECK-P8:       # %bb.0: # %entry725; CHECK-P8-NEXT:    xxsldwi vs0, v2, v2, 3726; CHECK-P8-NEXT:    xxswapd vs1, v2727; CHECK-P8-NEXT:    xscvspdpn f0, vs0728; CHECK-P8-NEXT:    xscvspdpn f1, vs1729; CHECK-P8-NEXT:    xxsldwi vs2, v2, v2, 1730; CHECK-P8-NEXT:    xscvdpsxws f0, f0731; CHECK-P8-NEXT:    xscvdpsxws f1, f1732; CHECK-P8-NEXT:    mffprwz r3, f0733; CHECK-P8-NEXT:    xscvspdpn f0, v2734; CHECK-P8-NEXT:    mtvsrd v3, r3735; CHECK-P8-NEXT:    mffprwz r3, f1736; CHECK-P8-NEXT:    xscvspdpn f1, vs2737; CHECK-P8-NEXT:    xscvdpsxws f0, f0738; CHECK-P8-NEXT:    mtvsrd v4, r3739; CHECK-P8-NEXT:    mffprwz r3, f0740; CHECK-P8-NEXT:    xscvdpsxws f0, f1741; CHECK-P8-NEXT:    mtvsrd v2, r3742; CHECK-P8-NEXT:    mffprwz r3, f0743; CHECK-P8-NEXT:    vmrghb v3, v4, v3744; CHECK-P8-NEXT:    mtvsrd v4, r3745; CHECK-P8-NEXT:    vmrghb v2, v2, v4746; CHECK-P8-NEXT:    vmrglh v2, v2, v3747; CHECK-P8-NEXT:    xxswapd vs0, v2748; CHECK-P8-NEXT:    mffprwz r3, f0749; CHECK-P8-NEXT:    blr750;751; CHECK-P9-LABEL: test4elt_signed:752; CHECK-P9:       # %bb.0: # %entry753; CHECK-P9-NEXT:    xxsldwi vs0, v2, v2, 3754; CHECK-P9-NEXT:    xscvspdpn f0, vs0755; CHECK-P9-NEXT:    xscvdpsxws f0, f0756; CHECK-P9-NEXT:    mffprwz r3, f0757; CHECK-P9-NEXT:    xxswapd vs0, v2758; CHECK-P9-NEXT:    mtvsrd v3, r3759; CHECK-P9-NEXT:    xscvspdpn f0, vs0760; CHECK-P9-NEXT:    xscvdpsxws f0, f0761; CHECK-P9-NEXT:    mffprwz r3, f0762; CHECK-P9-NEXT:    xscvspdpn f0, v2763; CHECK-P9-NEXT:    mtvsrd v4, r3764; CHECK-P9-NEXT:    xscvdpsxws f0, f0765; CHECK-P9-NEXT:    vmrghb v3, v4, v3766; CHECK-P9-NEXT:    mffprwz r3, f0767; CHECK-P9-NEXT:    xxsldwi vs0, v2, v2, 1768; CHECK-P9-NEXT:    mtvsrd v4, r3769; CHECK-P9-NEXT:    xscvspdpn f0, vs0770; CHECK-P9-NEXT:    xscvdpsxws f0, f0771; CHECK-P9-NEXT:    mffprwz r3, f0772; CHECK-P9-NEXT:    mtvsrd v2, r3773; CHECK-P9-NEXT:    li r3, 0774; CHECK-P9-NEXT:    vmrghb v2, v4, v2775; CHECK-P9-NEXT:    vmrglh v2, v2, v3776; CHECK-P9-NEXT:    vextuwrx r3, r3, v2777; CHECK-P9-NEXT:    blr778;779; CHECK-BE-LABEL: test4elt_signed:780; CHECK-BE:       # %bb.0: # %entry781; CHECK-BE-NEXT:    xxsldwi vs1, v2, v2, 3782; CHECK-BE-NEXT:    addis r3, r2, .LCPI5_0@toc@ha783; CHECK-BE-NEXT:    xxsldwi vs2, v2, v2, 1784; CHECK-BE-NEXT:    addi r3, r3, .LCPI5_0@toc@l785; CHECK-BE-NEXT:    xscvspdpn f1, vs1786; CHECK-BE-NEXT:    xscvspdpn f2, vs2787; CHECK-BE-NEXT:    lxv vs0, 0(r3)788; CHECK-BE-NEXT:    xscvdpsxws f1, f1789; CHECK-BE-NEXT:    xscvdpsxws f2, f2790; CHECK-BE-NEXT:    mffprwz r3, f1791; CHECK-BE-NEXT:    xxswapd vs1, v2792; CHECK-BE-NEXT:    mtvsrwz v3, r3793; CHECK-BE-NEXT:    xscvspdpn f1, vs1794; CHECK-BE-NEXT:    xscvdpsxws f1, f1795; CHECK-BE-NEXT:    mffprwz r3, f1796; CHECK-BE-NEXT:    mtfprwz f1, r3797; CHECK-BE-NEXT:    xxperm v3, vs1, vs0798; CHECK-BE-NEXT:    xscvspdpn f1, v2799; CHECK-BE-NEXT:    xscvdpsxws f1, f1800; CHECK-BE-NEXT:    mffprwz r3, f1801; CHECK-BE-NEXT:    mtfprwz f1, r3802; CHECK-BE-NEXT:    mffprwz r3, f2803; CHECK-BE-NEXT:    mtvsrwz v2, r3804; CHECK-BE-NEXT:    li r3, 0805; CHECK-BE-NEXT:    xxperm v2, vs1, vs0806; CHECK-BE-NEXT:    vmrghh v2, v2, v3807; CHECK-BE-NEXT:    vextuwlx r3, r3, v2808; CHECK-BE-NEXT:    blr809entry:810  %0 = fptosi <4 x float> %a to <4 x i8>811  %1 = bitcast <4 x i8> %0 to i32812  ret i32 %1813}814 815define i64 @test8elt_signed(ptr nocapture readonly) local_unnamed_addr #2 {816; CHECK-P8-LABEL: test8elt_signed:817; CHECK-P8:       # %bb.0: # %entry818; CHECK-P8-NEXT:    lxvd2x vs0, 0, r3819; CHECK-P8-NEXT:    li r4, 16820; CHECK-P8-NEXT:    lxvd2x vs2, r3, r4821; CHECK-P8-NEXT:    xxswapd v3, vs0822; CHECK-P8-NEXT:    xscvspdpn f0, vs0823; CHECK-P8-NEXT:    xscvdpsxws f0, f0824; CHECK-P8-NEXT:    mffprwz r3, f0825; CHECK-P8-NEXT:    xscvspdpn f0, v3826; CHECK-P8-NEXT:    mtvsrd v4, r3827; CHECK-P8-NEXT:    xscvdpsxws f0, f0828; CHECK-P8-NEXT:    mffprwz r3, f0829; CHECK-P8-NEXT:    xxsldwi vs1, v3, v3, 3830; CHECK-P8-NEXT:    xscvspdpn f1, vs1831; CHECK-P8-NEXT:    xscvdpsxws f1, f1832; CHECK-P8-NEXT:    xxsldwi vs3, v3, v3, 1833; CHECK-P8-NEXT:    mffprwz r4, f1834; CHECK-P8-NEXT:    xscvspdpn f1, vs3835; CHECK-P8-NEXT:    xscvdpsxws f1, f1836; CHECK-P8-NEXT:    xscvspdpn f0, vs2837; CHECK-P8-NEXT:    xxswapd v2, vs2838; CHECK-P8-NEXT:    mtvsrd v5, r4839; CHECK-P8-NEXT:    mffprwz r4, f1840; CHECK-P8-NEXT:    mtvsrd v3, r3841; CHECK-P8-NEXT:    xscvdpsxws f0, f0842; CHECK-P8-NEXT:    mffprwz r3, f0843; CHECK-P8-NEXT:    xscvspdpn f0, v2844; CHECK-P8-NEXT:    xscvdpsxws f0, f0845; CHECK-P8-NEXT:    xxsldwi vs4, v2, v2, 3846; CHECK-P8-NEXT:    xscvspdpn f1, vs4847; CHECK-P8-NEXT:    xscvdpsxws f1, f1848; CHECK-P8-NEXT:    xxsldwi vs5, v2, v2, 1849; CHECK-P8-NEXT:    vmrghb v4, v4, v5850; CHECK-P8-NEXT:    mtvsrd v5, r4851; CHECK-P8-NEXT:    mffprwz r4, f1852; CHECK-P8-NEXT:    xscvspdpn f1, vs5853; CHECK-P8-NEXT:    mtvsrd v0, r4854; CHECK-P8-NEXT:    vmrghb v3, v3, v5855; CHECK-P8-NEXT:    mtvsrd v5, r3856; CHECK-P8-NEXT:    mffprwz r3, f0857; CHECK-P8-NEXT:    xscvdpsxws f0, f1858; CHECK-P8-NEXT:    mtvsrd v2, r3859; CHECK-P8-NEXT:    mffprwz r3, f0860; CHECK-P8-NEXT:    vmrglh v3, v3, v4861; CHECK-P8-NEXT:    vmrghb v5, v5, v0862; CHECK-P8-NEXT:    mtvsrd v0, r3863; CHECK-P8-NEXT:    vmrghb v2, v2, v0864; CHECK-P8-NEXT:    vmrglh v2, v2, v5865; CHECK-P8-NEXT:    xxmrglw vs0, v2, v3866; CHECK-P8-NEXT:    xxswapd vs0, vs0867; CHECK-P8-NEXT:    mffprd r3, f0868; CHECK-P8-NEXT:    blr869;870; CHECK-P9-LABEL: test8elt_signed:871; CHECK-P9:       # %bb.0: # %entry872; CHECK-P9-NEXT:    lxv vs1, 0(r3)873; CHECK-P9-NEXT:    lxv vs0, 16(r3)874; CHECK-P9-NEXT:    xxsldwi vs2, vs1, vs1, 3875; CHECK-P9-NEXT:    xscvspdpn f2, vs2876; CHECK-P9-NEXT:    xscvdpsxws f2, f2877; CHECK-P9-NEXT:    mffprwz r3, f2878; CHECK-P9-NEXT:    xxswapd vs2, vs1879; CHECK-P9-NEXT:    mtvsrd v2, r3880; CHECK-P9-NEXT:    xscvspdpn f2, vs2881; CHECK-P9-NEXT:    xscvdpsxws f2, f2882; CHECK-P9-NEXT:    mffprwz r3, f2883; CHECK-P9-NEXT:    xscvspdpn f2, vs1884; CHECK-P9-NEXT:    xxsldwi vs1, vs1, vs1, 1885; CHECK-P9-NEXT:    mtvsrd v3, r3886; CHECK-P9-NEXT:    xscvspdpn f1, vs1887; CHECK-P9-NEXT:    xscvdpsxws f2, f2888; CHECK-P9-NEXT:    vmrghb v2, v3, v2889; CHECK-P9-NEXT:    xscvdpsxws f1, f1890; CHECK-P9-NEXT:    mffprwz r3, f2891; CHECK-P9-NEXT:    mtvsrd v3, r3892; CHECK-P9-NEXT:    mffprwz r3, f1893; CHECK-P9-NEXT:    xxsldwi vs1, vs0, vs0, 3894; CHECK-P9-NEXT:    mtvsrd v4, r3895; CHECK-P9-NEXT:    xscvspdpn f1, vs1896; CHECK-P9-NEXT:    vmrghb v3, v3, v4897; CHECK-P9-NEXT:    xscvdpsxws f1, f1898; CHECK-P9-NEXT:    vmrglh v2, v3, v2899; CHECK-P9-NEXT:    mffprwz r3, f1900; CHECK-P9-NEXT:    xxswapd vs1, vs0901; CHECK-P9-NEXT:    mtvsrd v3, r3902; CHECK-P9-NEXT:    xscvspdpn f1, vs1903; CHECK-P9-NEXT:    xscvdpsxws f1, f1904; CHECK-P9-NEXT:    mffprwz r3, f1905; CHECK-P9-NEXT:    xscvspdpn f1, vs0906; CHECK-P9-NEXT:    xxsldwi vs0, vs0, vs0, 1907; CHECK-P9-NEXT:    mtvsrd v4, r3908; CHECK-P9-NEXT:    xscvspdpn f0, vs0909; CHECK-P9-NEXT:    xscvdpsxws f1, f1910; CHECK-P9-NEXT:    vmrghb v3, v4, v3911; CHECK-P9-NEXT:    xscvdpsxws f0, f0912; CHECK-P9-NEXT:    mffprwz r3, f1913; CHECK-P9-NEXT:    mtvsrd v4, r3914; CHECK-P9-NEXT:    mffprwz r3, f0915; CHECK-P9-NEXT:    mtvsrd v5, r3916; CHECK-P9-NEXT:    vmrghb v4, v4, v5917; CHECK-P9-NEXT:    vmrglh v3, v4, v3918; CHECK-P9-NEXT:    xxmrglw vs0, v3, v2919; CHECK-P9-NEXT:    mfvsrld r3, vs0920; CHECK-P9-NEXT:    blr921;922; CHECK-BE-LABEL: test8elt_signed:923; CHECK-BE:       # %bb.0: # %entry924; CHECK-BE-NEXT:    lxv vs1, 16(r3)925; CHECK-BE-NEXT:    lxv vs0, 0(r3)926; CHECK-BE-NEXT:    addis r3, r2, .LCPI6_0@toc@ha927; CHECK-BE-NEXT:    addi r3, r3, .LCPI6_0@toc@l928; CHECK-BE-NEXT:    lxv vs2, 0(r3)929; CHECK-BE-NEXT:    xxsldwi vs3, vs1, vs1, 3930; CHECK-BE-NEXT:    xscvspdpn f3, vs3931; CHECK-BE-NEXT:    xscvdpsxws f3, f3932; CHECK-BE-NEXT:    mffprwz r3, f3933; CHECK-BE-NEXT:    xxswapd vs3, vs1934; CHECK-BE-NEXT:    mtvsrwz v2, r3935; CHECK-BE-NEXT:    xscvspdpn f3, vs3936; CHECK-BE-NEXT:    xscvdpsxws f3, f3937; CHECK-BE-NEXT:    mffprwz r3, f3938; CHECK-BE-NEXT:    mtfprwz f3, r3939; CHECK-BE-NEXT:    xxperm v2, vs3, vs2940; CHECK-BE-NEXT:    xscvspdpn f3, vs1941; CHECK-BE-NEXT:    xxsldwi vs1, vs1, vs1, 1942; CHECK-BE-NEXT:    xscvspdpn f1, vs1943; CHECK-BE-NEXT:    xscvdpsxws f3, f3944; CHECK-BE-NEXT:    xscvdpsxws f1, f1945; CHECK-BE-NEXT:    mffprwz r3, f3946; CHECK-BE-NEXT:    mtfprwz f3, r3947; CHECK-BE-NEXT:    mffprwz r3, f1948; CHECK-BE-NEXT:    xxsldwi vs1, vs0, vs0, 3949; CHECK-BE-NEXT:    mtvsrwz v3, r3950; CHECK-BE-NEXT:    xscvspdpn f1, vs1951; CHECK-BE-NEXT:    xxperm v3, vs3, vs2952; CHECK-BE-NEXT:    xscvdpsxws f1, f1953; CHECK-BE-NEXT:    vmrghh v2, v3, v2954; CHECK-BE-NEXT:    mffprwz r3, f1955; CHECK-BE-NEXT:    xxswapd vs1, vs0956; CHECK-BE-NEXT:    mtvsrwz v3, r3957; CHECK-BE-NEXT:    xscvspdpn f1, vs1958; CHECK-BE-NEXT:    xscvdpsxws f1, f1959; CHECK-BE-NEXT:    mffprwz r3, f1960; CHECK-BE-NEXT:    mtfprwz f1, r3961; CHECK-BE-NEXT:    xxperm v3, vs1, vs2962; CHECK-BE-NEXT:    xscvspdpn f1, vs0963; CHECK-BE-NEXT:    xxsldwi vs0, vs0, vs0, 1964; CHECK-BE-NEXT:    xscvspdpn f0, vs0965; CHECK-BE-NEXT:    xscvdpsxws f1, f1966; CHECK-BE-NEXT:    xscvdpsxws f0, f0967; CHECK-BE-NEXT:    mffprwz r3, f1968; CHECK-BE-NEXT:    mtfprwz f1, r3969; CHECK-BE-NEXT:    mffprwz r3, f0970; CHECK-BE-NEXT:    mtvsrwz v4, r3971; CHECK-BE-NEXT:    xxperm v4, vs1, vs2972; CHECK-BE-NEXT:    vmrghh v3, v4, v3973; CHECK-BE-NEXT:    xxmrghw vs0, v3, v2974; CHECK-BE-NEXT:    mffprd r3, f0975; CHECK-BE-NEXT:    blr976entry:977  %a = load <8 x float>, ptr %0, align 32978  %1 = fptosi <8 x float> %a to <8 x i8>979  %2 = bitcast <8 x i8> %1 to i64980  ret i64 %2981}982 983define <16 x i8> @test16elt_signed(ptr nocapture readonly) local_unnamed_addr #3 {984; CHECK-P8-LABEL: test16elt_signed:985; CHECK-P8:       # %bb.0: # %entry986; CHECK-P8-NEXT:    lxvd2x vs1, 0, r3987; CHECK-P8-NEXT:    li r4, 16988; CHECK-P8-NEXT:    lxvd2x vs0, r3, r4989; CHECK-P8-NEXT:    li r4, 32990; CHECK-P8-NEXT:    lxvd2x vs6, r3, r4991; CHECK-P8-NEXT:    li r4, 48992; CHECK-P8-NEXT:    lxvd2x vs8, r3, r4993; CHECK-P8-NEXT:    xxswapd v3, vs1994; CHECK-P8-NEXT:    xscvspdpn f1, vs1995; CHECK-P8-NEXT:    xscvdpsxws f1, f1996; CHECK-P8-NEXT:    mffprwz r3, f1997; CHECK-P8-NEXT:    xscvspdpn f1, v3998; CHECK-P8-NEXT:    mtvsrd v0, r3999; CHECK-P8-NEXT:    xscvdpsxws f1, f11000; CHECK-P8-NEXT:    mffprwz r3, f11001; CHECK-P8-NEXT:    xxsldwi vs2, v3, v3, 31002; CHECK-P8-NEXT:    xscvspdpn f2, vs21003; CHECK-P8-NEXT:    xscvdpsxws f2, f21004; CHECK-P8-NEXT:    xxswapd v2, vs01005; CHECK-P8-NEXT:    xxsldwi vs3, v3, v3, 11006; CHECK-P8-NEXT:    xscvspdpn f0, vs01007; CHECK-P8-NEXT:    mffprwz r4, f21008; CHECK-P8-NEXT:    xscvspdpn f2, vs31009; CHECK-P8-NEXT:    xscvdpsxws f0, f01010; CHECK-P8-NEXT:    xscvdpsxws f2, f21011; CHECK-P8-NEXT:    xxsldwi vs4, v2, v2, 31012; CHECK-P8-NEXT:    mtvsrd v1, r41013; CHECK-P8-NEXT:    xscvspdpn f1, vs41014; CHECK-P8-NEXT:    xxsldwi vs5, v2, v2, 11015; CHECK-P8-NEXT:    xxswapd v5, vs61016; CHECK-P8-NEXT:    mffprwz r4, f21017; CHECK-P8-NEXT:    xxswapd v4, vs81018; CHECK-P8-NEXT:    mtvsrd v3, r31019; CHECK-P8-NEXT:    mffprwz r3, f01020; CHECK-P8-NEXT:    xscvspdpn f0, v21021; CHECK-P8-NEXT:    xxsldwi vs7, v5, v5, 31022; CHECK-P8-NEXT:    xxsldwi vs9, v5, v5, 11023; CHECK-P8-NEXT:    xscvdpsxws f1, f11024; CHECK-P8-NEXT:    xscvdpsxws f0, f01025; CHECK-P8-NEXT:    xxsldwi vs10, v4, v4, 31026; CHECK-P8-NEXT:    xxsldwi vs11, v4, v4, 11027; CHECK-P8-NEXT:    vmrghb v0, v0, v11028; CHECK-P8-NEXT:    mtvsrd v1, r41029; CHECK-P8-NEXT:    mffprwz r4, f11030; CHECK-P8-NEXT:    xscvspdpn f1, vs51031; CHECK-P8-NEXT:    mtvsrd v6, r41032; CHECK-P8-NEXT:    xscvdpsxws f1, f11033; CHECK-P8-NEXT:    mffprwz r4, f11034; CHECK-P8-NEXT:    xscvspdpn f1, vs71035; CHECK-P8-NEXT:    xscvdpsxws f1, f11036; CHECK-P8-NEXT:    vmrghb v3, v3, v11037; CHECK-P8-NEXT:    mtvsrd v1, r31038; CHECK-P8-NEXT:    mffprwz r3, f01039; CHECK-P8-NEXT:    xscvspdpn f0, vs61040; CHECK-P8-NEXT:    xscvdpsxws f0, f01041; CHECK-P8-NEXT:    mtvsrd v2, r31042; CHECK-P8-NEXT:    mffprwz r3, f01043; CHECK-P8-NEXT:    xscvspdpn f0, v51044; CHECK-P8-NEXT:    vmrglh v3, v3, v01045; CHECK-P8-NEXT:    xscvdpsxws f0, f01046; CHECK-P8-NEXT:    vmrghb v1, v1, v61047; CHECK-P8-NEXT:    mtvsrd v6, r41048; CHECK-P8-NEXT:    mffprwz r4, f11049; CHECK-P8-NEXT:    xscvspdpn f1, vs91050; CHECK-P8-NEXT:    mtvsrd v7, r41051; CHECK-P8-NEXT:    xscvdpsxws f1, f11052; CHECK-P8-NEXT:    mffprwz r4, f11053; CHECK-P8-NEXT:    vmrghb v2, v2, v61054; CHECK-P8-NEXT:    mtvsrd v6, r31055; CHECK-P8-NEXT:    mffprwz r3, f01056; CHECK-P8-NEXT:    xscvspdpn f0, vs101057; CHECK-P8-NEXT:    xscvdpsxws f0, f01058; CHECK-P8-NEXT:    mtvsrd v5, r31059; CHECK-P8-NEXT:    mffprwz r3, f01060; CHECK-P8-NEXT:    xscvspdpn f0, vs81061; CHECK-P8-NEXT:    vmrglh v2, v2, v11062; CHECK-P8-NEXT:    xscvdpsxws f0, f01063; CHECK-P8-NEXT:    vmrghb v6, v6, v71064; CHECK-P8-NEXT:    mtvsrd v7, r41065; CHECK-P8-NEXT:    vmrghb v5, v5, v71066; CHECK-P8-NEXT:    mtvsrd v7, r31067; CHECK-P8-NEXT:    mffprwz r3, f01068; CHECK-P8-NEXT:    xscvspdpn f0, v41069; CHECK-P8-NEXT:    mtvsrd v8, r31070; CHECK-P8-NEXT:    xscvdpsxws f0, f01071; CHECK-P8-NEXT:    mffprwz r3, f01072; CHECK-P8-NEXT:    xscvspdpn f0, vs111073; CHECK-P8-NEXT:    vmrglh v5, v5, v61074; CHECK-P8-NEXT:    mtvsrd v4, r31075; CHECK-P8-NEXT:    xscvdpsxws f0, f01076; CHECK-P8-NEXT:    mffprwz r3, f01077; CHECK-P8-NEXT:    vmrghb v7, v8, v71078; CHECK-P8-NEXT:    mtvsrd v8, r31079; CHECK-P8-NEXT:    xxmrglw vs0, v2, v31080; CHECK-P8-NEXT:    vmrghb v4, v4, v81081; CHECK-P8-NEXT:    vmrglh v4, v4, v71082; CHECK-P8-NEXT:    xxmrglw vs1, v4, v51083; CHECK-P8-NEXT:    xxmrgld v2, vs1, vs01084; CHECK-P8-NEXT:    blr1085;1086; CHECK-P9-LABEL: test16elt_signed:1087; CHECK-P9:       # %bb.0: # %entry1088; CHECK-P9-NEXT:    lxv vs3, 0(r3)1089; CHECK-P9-NEXT:    lxv vs0, 48(r3)1090; CHECK-P9-NEXT:    lxv vs1, 32(r3)1091; CHECK-P9-NEXT:    lxv vs2, 16(r3)1092; CHECK-P9-NEXT:    xxsldwi vs4, vs3, vs3, 31093; CHECK-P9-NEXT:    xscvspdpn f4, vs41094; CHECK-P9-NEXT:    xscvdpsxws f4, f41095; CHECK-P9-NEXT:    mffprwz r3, f41096; CHECK-P9-NEXT:    xxswapd vs4, vs31097; CHECK-P9-NEXT:    mtvsrd v2, r31098; CHECK-P9-NEXT:    xscvspdpn f4, vs41099; CHECK-P9-NEXT:    xscvdpsxws f4, f41100; CHECK-P9-NEXT:    mffprwz r3, f41101; CHECK-P9-NEXT:    xscvspdpn f4, vs31102; CHECK-P9-NEXT:    xxsldwi vs3, vs3, vs3, 11103; CHECK-P9-NEXT:    mtvsrd v3, r31104; CHECK-P9-NEXT:    xscvspdpn f3, vs31105; CHECK-P9-NEXT:    xscvdpsxws f4, f41106; CHECK-P9-NEXT:    vmrghb v2, v3, v21107; CHECK-P9-NEXT:    xscvdpsxws f3, f31108; CHECK-P9-NEXT:    mffprwz r3, f41109; CHECK-P9-NEXT:    mtvsrd v3, r31110; CHECK-P9-NEXT:    mffprwz r3, f31111; CHECK-P9-NEXT:    xxsldwi vs3, vs2, vs2, 31112; CHECK-P9-NEXT:    mtvsrd v4, r31113; CHECK-P9-NEXT:    xscvspdpn f3, vs31114; CHECK-P9-NEXT:    vmrghb v3, v3, v41115; CHECK-P9-NEXT:    xscvdpsxws f3, f31116; CHECK-P9-NEXT:    vmrglh v2, v3, v21117; CHECK-P9-NEXT:    mffprwz r3, f31118; CHECK-P9-NEXT:    xxswapd vs3, vs21119; CHECK-P9-NEXT:    mtvsrd v3, r31120; CHECK-P9-NEXT:    xscvspdpn f3, vs31121; CHECK-P9-NEXT:    xscvdpsxws f3, f31122; CHECK-P9-NEXT:    mffprwz r3, f31123; CHECK-P9-NEXT:    xscvspdpn f3, vs21124; CHECK-P9-NEXT:    xxsldwi vs2, vs2, vs2, 11125; CHECK-P9-NEXT:    mtvsrd v4, r31126; CHECK-P9-NEXT:    xscvdpsxws f3, f31127; CHECK-P9-NEXT:    xscvspdpn f2, vs21128; CHECK-P9-NEXT:    vmrghb v3, v4, v31129; CHECK-P9-NEXT:    xscvdpsxws f2, f21130; CHECK-P9-NEXT:    mffprwz r3, f31131; CHECK-P9-NEXT:    xxsldwi vs3, vs1, vs1, 31132; CHECK-P9-NEXT:    mtvsrd v4, r31133; CHECK-P9-NEXT:    xscvspdpn f3, vs31134; CHECK-P9-NEXT:    mffprwz r3, f21135; CHECK-P9-NEXT:    mtvsrd v5, r31136; CHECK-P9-NEXT:    xscvdpsxws f3, f31137; CHECK-P9-NEXT:    vmrghb v4, v4, v51138; CHECK-P9-NEXT:    vmrglh v3, v4, v31139; CHECK-P9-NEXT:    mffprwz r3, f31140; CHECK-P9-NEXT:    xxswapd vs3, vs11141; CHECK-P9-NEXT:    xxmrglw vs2, v3, v21142; CHECK-P9-NEXT:    mtvsrd v2, r31143; CHECK-P9-NEXT:    xscvspdpn f3, vs31144; CHECK-P9-NEXT:    xscvdpsxws f3, f31145; CHECK-P9-NEXT:    mffprwz r3, f31146; CHECK-P9-NEXT:    xscvspdpn f3, vs11147; CHECK-P9-NEXT:    xxsldwi vs1, vs1, vs1, 11148; CHECK-P9-NEXT:    mtvsrd v3, r31149; CHECK-P9-NEXT:    xscvspdpn f1, vs11150; CHECK-P9-NEXT:    xscvdpsxws f3, f31151; CHECK-P9-NEXT:    vmrghb v2, v3, v21152; CHECK-P9-NEXT:    xscvdpsxws f1, f11153; CHECK-P9-NEXT:    mffprwz r3, f31154; CHECK-P9-NEXT:    mtvsrd v3, r31155; CHECK-P9-NEXT:    mffprwz r3, f11156; CHECK-P9-NEXT:    xxsldwi vs1, vs0, vs0, 31157; CHECK-P9-NEXT:    mtvsrd v4, r31158; CHECK-P9-NEXT:    xscvspdpn f1, vs11159; CHECK-P9-NEXT:    vmrghb v3, v3, v41160; CHECK-P9-NEXT:    xscvdpsxws f1, f11161; CHECK-P9-NEXT:    vmrglh v2, v3, v21162; CHECK-P9-NEXT:    mffprwz r3, f11163; CHECK-P9-NEXT:    xxswapd vs1, vs01164; CHECK-P9-NEXT:    mtvsrd v3, r31165; CHECK-P9-NEXT:    xscvspdpn f1, vs11166; CHECK-P9-NEXT:    xscvdpsxws f1, f11167; CHECK-P9-NEXT:    mffprwz r3, f11168; CHECK-P9-NEXT:    xscvspdpn f1, vs01169; CHECK-P9-NEXT:    xxsldwi vs0, vs0, vs0, 11170; CHECK-P9-NEXT:    mtvsrd v4, r31171; CHECK-P9-NEXT:    xscvspdpn f0, vs01172; CHECK-P9-NEXT:    xscvdpsxws f1, f11173; CHECK-P9-NEXT:    vmrghb v3, v4, v31174; CHECK-P9-NEXT:    xscvdpsxws f0, f01175; CHECK-P9-NEXT:    mffprwz r3, f11176; CHECK-P9-NEXT:    mtvsrd v4, r31177; CHECK-P9-NEXT:    mffprwz r3, f01178; CHECK-P9-NEXT:    mtvsrd v5, r31179; CHECK-P9-NEXT:    vmrghb v4, v4, v51180; CHECK-P9-NEXT:    vmrglh v3, v4, v31181; CHECK-P9-NEXT:    xxmrglw vs0, v3, v21182; CHECK-P9-NEXT:    xxmrgld v2, vs0, vs21183; CHECK-P9-NEXT:    blr1184;1185; CHECK-BE-LABEL: test16elt_signed:1186; CHECK-BE:       # %bb.0: # %entry1187; CHECK-BE-NEXT:    lxv vs3, 48(r3)1188; CHECK-BE-NEXT:    lxv vs0, 0(r3)1189; CHECK-BE-NEXT:    lxv vs1, 16(r3)1190; CHECK-BE-NEXT:    lxv vs2, 32(r3)1191; CHECK-BE-NEXT:    addis r3, r2, .LCPI7_0@toc@ha1192; CHECK-BE-NEXT:    addi r3, r3, .LCPI7_0@toc@l1193; CHECK-BE-NEXT:    lxv vs4, 0(r3)1194; CHECK-BE-NEXT:    xxsldwi vs5, vs3, vs3, 31195; CHECK-BE-NEXT:    xscvspdpn f5, vs51196; CHECK-BE-NEXT:    xscvdpsxws f5, f51197; CHECK-BE-NEXT:    mffprwz r3, f51198; CHECK-BE-NEXT:    xxswapd vs5, vs31199; CHECK-BE-NEXT:    mtvsrwz v2, r31200; CHECK-BE-NEXT:    xscvspdpn f5, vs51201; CHECK-BE-NEXT:    xscvdpsxws f5, f51202; CHECK-BE-NEXT:    mffprwz r3, f51203; CHECK-BE-NEXT:    mtfprwz f5, r31204; CHECK-BE-NEXT:    xxperm v2, vs5, vs41205; CHECK-BE-NEXT:    xscvspdpn f5, vs31206; CHECK-BE-NEXT:    xxsldwi vs3, vs3, vs3, 11207; CHECK-BE-NEXT:    xscvspdpn f3, vs31208; CHECK-BE-NEXT:    xscvdpsxws f5, f51209; CHECK-BE-NEXT:    xscvdpsxws f3, f31210; CHECK-BE-NEXT:    mffprwz r3, f51211; CHECK-BE-NEXT:    mtfprwz f5, r31212; CHECK-BE-NEXT:    mffprwz r3, f31213; CHECK-BE-NEXT:    xxsldwi vs3, vs2, vs2, 31214; CHECK-BE-NEXT:    mtvsrwz v3, r31215; CHECK-BE-NEXT:    xscvspdpn f3, vs31216; CHECK-BE-NEXT:    xxperm v3, vs5, vs41217; CHECK-BE-NEXT:    xscvdpsxws f3, f31218; CHECK-BE-NEXT:    vmrghh v2, v3, v21219; CHECK-BE-NEXT:    mffprwz r3, f31220; CHECK-BE-NEXT:    xxswapd vs3, vs21221; CHECK-BE-NEXT:    mtvsrwz v3, r31222; CHECK-BE-NEXT:    xscvspdpn f3, vs31223; CHECK-BE-NEXT:    xscvdpsxws f3, f31224; CHECK-BE-NEXT:    mffprwz r3, f31225; CHECK-BE-NEXT:    mtfprwz f3, r31226; CHECK-BE-NEXT:    xxperm v3, vs3, vs41227; CHECK-BE-NEXT:    xscvspdpn f3, vs21228; CHECK-BE-NEXT:    xxsldwi vs2, vs2, vs2, 11229; CHECK-BE-NEXT:    xscvspdpn f2, vs21230; CHECK-BE-NEXT:    xscvdpsxws f3, f31231; CHECK-BE-NEXT:    xscvdpsxws f2, f21232; CHECK-BE-NEXT:    mffprwz r3, f31233; CHECK-BE-NEXT:    mtfprwz f3, r31234; CHECK-BE-NEXT:    mffprwz r3, f21235; CHECK-BE-NEXT:    mtvsrwz v4, r31236; CHECK-BE-NEXT:    xxperm v4, vs3, vs41237; CHECK-BE-NEXT:    xxsldwi vs3, vs1, vs1, 31238; CHECK-BE-NEXT:    xscvspdpn f3, vs31239; CHECK-BE-NEXT:    vmrghh v3, v4, v31240; CHECK-BE-NEXT:    xscvdpsxws f3, f31241; CHECK-BE-NEXT:    xxmrghw vs2, v3, v21242; CHECK-BE-NEXT:    mffprwz r3, f31243; CHECK-BE-NEXT:    xxswapd vs3, vs11244; CHECK-BE-NEXT:    mtvsrwz v2, r31245; CHECK-BE-NEXT:    xscvspdpn f3, vs31246; CHECK-BE-NEXT:    xscvdpsxws f3, f31247; CHECK-BE-NEXT:    mffprwz r3, f31248; CHECK-BE-NEXT:    mtfprwz f3, r31249; CHECK-BE-NEXT:    xxperm v2, vs3, vs41250; CHECK-BE-NEXT:    xscvspdpn f3, vs11251; CHECK-BE-NEXT:    xxsldwi vs1, vs1, vs1, 11252; CHECK-BE-NEXT:    xscvspdpn f1, vs11253; CHECK-BE-NEXT:    xscvdpsxws f3, f31254; CHECK-BE-NEXT:    xscvdpsxws f1, f11255; CHECK-BE-NEXT:    mffprwz r3, f31256; CHECK-BE-NEXT:    mtfprwz f3, r31257; CHECK-BE-NEXT:    mffprwz r3, f11258; CHECK-BE-NEXT:    xxsldwi vs1, vs0, vs0, 31259; CHECK-BE-NEXT:    mtvsrwz v3, r31260; CHECK-BE-NEXT:    xscvspdpn f1, vs11261; CHECK-BE-NEXT:    xxperm v3, vs3, vs41262; CHECK-BE-NEXT:    xscvdpsxws f1, f11263; CHECK-BE-NEXT:    vmrghh v2, v3, v21264; CHECK-BE-NEXT:    mffprwz r3, f11265; CHECK-BE-NEXT:    xxswapd vs1, vs01266; CHECK-BE-NEXT:    mtvsrwz v3, r31267; CHECK-BE-NEXT:    xscvspdpn f1, vs11268; CHECK-BE-NEXT:    xscvdpsxws f1, f11269; CHECK-BE-NEXT:    mffprwz r3, f11270; CHECK-BE-NEXT:    mtfprwz f1, r31271; CHECK-BE-NEXT:    xxperm v3, vs1, vs41272; CHECK-BE-NEXT:    xscvspdpn f1, vs01273; CHECK-BE-NEXT:    xxsldwi vs0, vs0, vs0, 11274; CHECK-BE-NEXT:    xscvspdpn f0, vs01275; CHECK-BE-NEXT:    xscvdpsxws f1, f11276; CHECK-BE-NEXT:    xscvdpsxws f0, f01277; CHECK-BE-NEXT:    mffprwz r3, f11278; CHECK-BE-NEXT:    mtfprwz f1, r31279; CHECK-BE-NEXT:    mffprwz r3, f01280; CHECK-BE-NEXT:    mtvsrwz v4, r31281; CHECK-BE-NEXT:    xxperm v4, vs1, vs41282; CHECK-BE-NEXT:    vmrghh v3, v4, v31283; CHECK-BE-NEXT:    xxmrghw vs0, v3, v21284; CHECK-BE-NEXT:    xxmrghd v2, vs0, vs21285; CHECK-BE-NEXT:    blr1286entry:1287  %a = load <16 x float>, ptr %0, align 641288  %1 = fptosi <16 x float> %a to <16 x i8>1289  ret <16 x i8> %11290}1291