3944 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; FIXME: crash "Input type needs to be promoted!"3; SKIP: sed 's/iXLen/i32/g' %s | llc -ppc-asm-full-reg-names \4; SKIP: -ppc-vsr-nums-as-vr -mtriple=powerpc-unknown-unknown \5; SKIP: -verify-machineinstrs | FileCheck %s --check-prefixes=PPC326; RUN: sed 's/iXLen/i32/g' %s | llc -mcpu=pwr7 -ppc-asm-full-reg-names \7; RUN: -ppc-vsr-nums-as-vr -mtriple=powerpc64-unknown-unknown \8; RUN: -verify-machineinstrs | FileCheck %s --check-prefixes=BE9; RUN: sed 's/iXLen/i32/g' %s | llc -mcpu=pwr8 -ppc-asm-full-reg-names \10; RUN: -ppc-vsr-nums-as-vr -mtriple=powerpc64le-unknown-unknown \11; RUN: -verify-machineinstrs | FileCheck %s12; FIXME: crash "Input type needs to be promoted!"13; SKIP: sed 's/iXLen/i64/g' %s | llc -ppc-asm-full-reg-names \14; SKIP: -ppc-vsr-nums-as-vr -mtriple=powerpc-unknown-unknown \15; SKIP: -verify-machineinstrs | FileCheck %s --check-prefixes=PPC3216; RUN: sed 's/iXLen/i64/g' %s | llc -mcpu=pwr7 -ppc-asm-full-reg-names \17; RUN: -ppc-vsr-nums-as-vr -mtriple=powerpc64-unknown-unknown \18; RUN: -verify-machineinstrs | FileCheck %s --check-prefixes=BE19; RUN: sed 's/iXLen/i64/g' %s | llc -mcpu=pwr8 -ppc-asm-full-reg-names \20; RUN: -ppc-vsr-nums-as-vr -mtriple=powerpc64le-unknown-unknown \21; RUN: -verify-machineinstrs | FileCheck %s --check-prefixes=CHECK22 23define <1 x i64> @lrint_v1f16(<1 x half> %x) nounwind {24; BE-LABEL: lrint_v1f16:25; BE: # %bb.0:26; BE-NEXT: mflr r027; BE-NEXT: stdu r1, -112(r1)28; BE-NEXT: std r0, 128(r1)29; BE-NEXT: bl __truncsfhf230; BE-NEXT: nop31; BE-NEXT: clrldi r3, r3, 4832; BE-NEXT: bl __extendhfsf233; BE-NEXT: nop34; BE-NEXT: bl lrintf35; BE-NEXT: nop36; BE-NEXT: addi r1, r1, 11237; BE-NEXT: ld r0, 16(r1)38; BE-NEXT: mtlr r039; BE-NEXT: blr40;41; CHECK-LABEL: lrint_v1f16:42; CHECK: # %bb.0:43; CHECK-NEXT: mflr r044; CHECK-NEXT: stdu r1, -32(r1)45; CHECK-NEXT: std r0, 48(r1)46; CHECK-NEXT: bl __truncsfhf247; CHECK-NEXT: nop48; CHECK-NEXT: clrldi r3, r3, 4849; CHECK-NEXT: bl __extendhfsf250; CHECK-NEXT: nop51; CHECK-NEXT: bl lrintf52; CHECK-NEXT: nop53; CHECK-NEXT: addi r1, r1, 3254; CHECK-NEXT: ld r0, 16(r1)55; CHECK-NEXT: mtlr r056; CHECK-NEXT: blr57 %a = call <1 x i64> @llvm.lrint.v1i64.v1f16(<1 x half> %x)58 ret <1 x i64> %a59}60declare <1 x i64> @llvm.lrint.v1i64.v1f16(<1 x half>)61 62define <2 x i64> @lrint_v2f16(<2 x half> %x) nounwind {63; BE-LABEL: lrint_v2f16:64; BE: # %bb.0:65; BE-NEXT: mflr r066; BE-NEXT: stdu r1, -160(r1)67; BE-NEXT: std r0, 176(r1)68; BE-NEXT: stfd f31, 152(r1) # 8-byte Folded Spill69; BE-NEXT: fmr f31, f170; BE-NEXT: fmr f1, f271; BE-NEXT: std r30, 136(r1) # 8-byte Folded Spill72; BE-NEXT: bl __truncsfhf273; BE-NEXT: nop74; BE-NEXT: fmr f1, f3175; BE-NEXT: mr r30, r376; BE-NEXT: bl __truncsfhf277; BE-NEXT: nop78; BE-NEXT: clrldi r3, r3, 4879; BE-NEXT: bl __extendhfsf280; BE-NEXT: nop81; BE-NEXT: clrldi r3, r30, 4882; BE-NEXT: fmr f31, f183; BE-NEXT: bl __extendhfsf284; BE-NEXT: nop85; BE-NEXT: bl lrintf86; BE-NEXT: nop87; BE-NEXT: fmr f1, f3188; BE-NEXT: std r3, 120(r1)89; BE-NEXT: bl lrintf90; BE-NEXT: nop91; BE-NEXT: std r3, 112(r1)92; BE-NEXT: addi r3, r1, 11293; BE-NEXT: ld r30, 136(r1) # 8-byte Folded Reload94; BE-NEXT: lfd f31, 152(r1) # 8-byte Folded Reload95; BE-NEXT: lxvd2x v2, 0, r396; BE-NEXT: addi r1, r1, 16097; BE-NEXT: ld r0, 16(r1)98; BE-NEXT: mtlr r099; BE-NEXT: blr100;101; CHECK-LABEL: lrint_v2f16:102; CHECK: # %bb.0:103; CHECK-NEXT: mflr r0104; CHECK-NEXT: stdu r1, -96(r1)105; CHECK-NEXT: li r3, 48106; CHECK-NEXT: std r0, 112(r1)107; CHECK-NEXT: std r30, 72(r1) # 8-byte Folded Spill108; CHECK-NEXT: stfd f31, 88(r1) # 8-byte Folded Spill109; CHECK-NEXT: fmr f31, f2110; CHECK-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill111; CHECK-NEXT: bl __truncsfhf2112; CHECK-NEXT: nop113; CHECK-NEXT: fmr f1, f31114; CHECK-NEXT: mr r30, r3115; CHECK-NEXT: bl __truncsfhf2116; CHECK-NEXT: nop117; CHECK-NEXT: clrldi r3, r3, 48118; CHECK-NEXT: bl __extendhfsf2119; CHECK-NEXT: nop120; CHECK-NEXT: clrldi r3, r30, 48121; CHECK-NEXT: fmr f31, f1122; CHECK-NEXT: bl __extendhfsf2123; CHECK-NEXT: nop124; CHECK-NEXT: bl lrintf125; CHECK-NEXT: nop126; CHECK-NEXT: fmr f1, f31127; CHECK-NEXT: mtvsrd v31, r3128; CHECK-NEXT: bl lrintf129; CHECK-NEXT: nop130; CHECK-NEXT: mtfprd f0, r3131; CHECK-NEXT: li r3, 48132; CHECK-NEXT: lfd f31, 88(r1) # 8-byte Folded Reload133; CHECK-NEXT: ld r30, 72(r1) # 8-byte Folded Reload134; CHECK-NEXT: xxmrghd v2, vs0, v31135; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload136; CHECK-NEXT: addi r1, r1, 96137; CHECK-NEXT: ld r0, 16(r1)138; CHECK-NEXT: mtlr r0139; CHECK-NEXT: blr140 %a = call <2 x i64> @llvm.lrint.v2i64.v2f16(<2 x half> %x)141 ret <2 x i64> %a142}143declare <2 x i64> @llvm.lrint.v2i64.v2f16(<2 x half>)144 145define <4 x i64> @lrint_v4f16(<4 x half> %x) nounwind {146; BE-LABEL: lrint_v4f16:147; BE: # %bb.0:148; BE-NEXT: mflr r0149; BE-NEXT: stdu r1, -208(r1)150; BE-NEXT: std r0, 224(r1)151; BE-NEXT: stfd f29, 184(r1) # 8-byte Folded Spill152; BE-NEXT: fmr f29, f1153; BE-NEXT: fmr f1, f2154; BE-NEXT: std r28, 152(r1) # 8-byte Folded Spill155; BE-NEXT: std r29, 160(r1) # 8-byte Folded Spill156; BE-NEXT: std r30, 168(r1) # 8-byte Folded Spill157; BE-NEXT: stfd f30, 192(r1) # 8-byte Folded Spill158; BE-NEXT: stfd f31, 200(r1) # 8-byte Folded Spill159; BE-NEXT: fmr f31, f4160; BE-NEXT: fmr f30, f3161; BE-NEXT: bl __truncsfhf2162; BE-NEXT: nop163; BE-NEXT: fmr f1, f29164; BE-NEXT: mr r30, r3165; BE-NEXT: bl __truncsfhf2166; BE-NEXT: nop167; BE-NEXT: fmr f1, f31168; BE-NEXT: mr r29, r3169; BE-NEXT: bl __truncsfhf2170; BE-NEXT: nop171; BE-NEXT: fmr f1, f30172; BE-NEXT: mr r28, r3173; BE-NEXT: bl __truncsfhf2174; BE-NEXT: nop175; BE-NEXT: clrldi r3, r3, 48176; BE-NEXT: bl __extendhfsf2177; BE-NEXT: nop178; BE-NEXT: clrldi r3, r28, 48179; BE-NEXT: fmr f31, f1180; BE-NEXT: bl __extendhfsf2181; BE-NEXT: nop182; BE-NEXT: clrldi r3, r29, 48183; BE-NEXT: fmr f30, f1184; BE-NEXT: bl __extendhfsf2185; BE-NEXT: nop186; BE-NEXT: clrldi r3, r30, 48187; BE-NEXT: fmr f29, f1188; BE-NEXT: bl __extendhfsf2189; BE-NEXT: nop190; BE-NEXT: bl lrintf191; BE-NEXT: nop192; BE-NEXT: fmr f1, f29193; BE-NEXT: std r3, 120(r1)194; BE-NEXT: bl lrintf195; BE-NEXT: nop196; BE-NEXT: fmr f1, f30197; BE-NEXT: std r3, 112(r1)198; BE-NEXT: bl lrintf199; BE-NEXT: nop200; BE-NEXT: fmr f1, f31201; BE-NEXT: std r3, 136(r1)202; BE-NEXT: bl lrintf203; BE-NEXT: nop204; BE-NEXT: std r3, 128(r1)205; BE-NEXT: addi r3, r1, 112206; BE-NEXT: ld r30, 168(r1) # 8-byte Folded Reload207; BE-NEXT: lfd f31, 200(r1) # 8-byte Folded Reload208; BE-NEXT: lfd f30, 192(r1) # 8-byte Folded Reload209; BE-NEXT: lfd f29, 184(r1) # 8-byte Folded Reload210; BE-NEXT: lxvd2x v2, 0, r3211; BE-NEXT: addi r3, r1, 128212; BE-NEXT: ld r29, 160(r1) # 8-byte Folded Reload213; BE-NEXT: ld r28, 152(r1) # 8-byte Folded Reload214; BE-NEXT: lxvd2x v3, 0, r3215; BE-NEXT: addi r1, r1, 208216; BE-NEXT: ld r0, 16(r1)217; BE-NEXT: mtlr r0218; BE-NEXT: blr219;220; CHECK-LABEL: lrint_v4f16:221; CHECK: # %bb.0:222; CHECK-NEXT: mflr r0223; CHECK-NEXT: stdu r1, -144(r1)224; CHECK-NEXT: li r3, 48225; CHECK-NEXT: std r0, 160(r1)226; CHECK-NEXT: std r28, 88(r1) # 8-byte Folded Spill227; CHECK-NEXT: std r29, 96(r1) # 8-byte Folded Spill228; CHECK-NEXT: std r30, 104(r1) # 8-byte Folded Spill229; CHECK-NEXT: stfd f29, 120(r1) # 8-byte Folded Spill230; CHECK-NEXT: fmr f29, f2231; CHECK-NEXT: stfd f30, 128(r1) # 8-byte Folded Spill232; CHECK-NEXT: fmr f30, f3233; CHECK-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill234; CHECK-NEXT: li r3, 64235; CHECK-NEXT: stfd f31, 136(r1) # 8-byte Folded Spill236; CHECK-NEXT: fmr f31, f4237; CHECK-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill238; CHECK-NEXT: bl __truncsfhf2239; CHECK-NEXT: nop240; CHECK-NEXT: fmr f1, f29241; CHECK-NEXT: mr r30, r3242; CHECK-NEXT: bl __truncsfhf2243; CHECK-NEXT: nop244; CHECK-NEXT: fmr f1, f30245; CHECK-NEXT: mr r29, r3246; CHECK-NEXT: bl __truncsfhf2247; CHECK-NEXT: nop248; CHECK-NEXT: fmr f1, f31249; CHECK-NEXT: mr r28, r3250; CHECK-NEXT: bl __truncsfhf2251; CHECK-NEXT: nop252; CHECK-NEXT: clrldi r3, r3, 48253; CHECK-NEXT: bl __extendhfsf2254; CHECK-NEXT: nop255; CHECK-NEXT: clrldi r3, r28, 48256; CHECK-NEXT: fmr f31, f1257; CHECK-NEXT: bl __extendhfsf2258; CHECK-NEXT: nop259; CHECK-NEXT: clrldi r3, r29, 48260; CHECK-NEXT: fmr f30, f1261; CHECK-NEXT: bl __extendhfsf2262; CHECK-NEXT: nop263; CHECK-NEXT: clrldi r3, r30, 48264; CHECK-NEXT: fmr f29, f1265; CHECK-NEXT: bl __extendhfsf2266; CHECK-NEXT: nop267; CHECK-NEXT: bl lrintf268; CHECK-NEXT: nop269; CHECK-NEXT: fmr f1, f29270; CHECK-NEXT: mtvsrd v31, r3271; CHECK-NEXT: bl lrintf272; CHECK-NEXT: nop273; CHECK-NEXT: fmr f1, f30274; CHECK-NEXT: mtfprd f0, r3275; CHECK-NEXT: xxmrghd v31, vs0, v31276; CHECK-NEXT: bl lrintf277; CHECK-NEXT: nop278; CHECK-NEXT: fmr f1, f31279; CHECK-NEXT: mtvsrd v30, r3280; CHECK-NEXT: bl lrintf281; CHECK-NEXT: nop282; CHECK-NEXT: mtfprd f0, r3283; CHECK-NEXT: li r3, 64284; CHECK-NEXT: vmr v2, v31285; CHECK-NEXT: lfd f31, 136(r1) # 8-byte Folded Reload286; CHECK-NEXT: lfd f30, 128(r1) # 8-byte Folded Reload287; CHECK-NEXT: lfd f29, 120(r1) # 8-byte Folded Reload288; CHECK-NEXT: ld r30, 104(r1) # 8-byte Folded Reload289; CHECK-NEXT: ld r29, 96(r1) # 8-byte Folded Reload290; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload291; CHECK-NEXT: li r3, 48292; CHECK-NEXT: ld r28, 88(r1) # 8-byte Folded Reload293; CHECK-NEXT: xxmrghd v3, vs0, v30294; CHECK-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload295; CHECK-NEXT: addi r1, r1, 144296; CHECK-NEXT: ld r0, 16(r1)297; CHECK-NEXT: mtlr r0298; CHECK-NEXT: blr299 %a = call <4 x i64> @llvm.lrint.v4i64.v4f16(<4 x half> %x)300 ret <4 x i64> %a301}302declare <4 x i64> @llvm.lrint.v4i64.v4f16(<4 x half>)303 304define <8 x i64> @lrint_v8f16(<8 x half> %x) nounwind {305; BE-LABEL: lrint_v8f16:306; BE: # %bb.0:307; BE-NEXT: mflr r0308; BE-NEXT: stdu r1, -304(r1)309; BE-NEXT: std r0, 320(r1)310; BE-NEXT: stfd f25, 248(r1) # 8-byte Folded Spill311; BE-NEXT: fmr f25, f1312; BE-NEXT: fmr f1, f2313; BE-NEXT: std r24, 184(r1) # 8-byte Folded Spill314; BE-NEXT: std r25, 192(r1) # 8-byte Folded Spill315; BE-NEXT: std r26, 200(r1) # 8-byte Folded Spill316; BE-NEXT: std r27, 208(r1) # 8-byte Folded Spill317; BE-NEXT: std r28, 216(r1) # 8-byte Folded Spill318; BE-NEXT: std r29, 224(r1) # 8-byte Folded Spill319; BE-NEXT: std r30, 232(r1) # 8-byte Folded Spill320; BE-NEXT: stfd f26, 256(r1) # 8-byte Folded Spill321; BE-NEXT: stfd f27, 264(r1) # 8-byte Folded Spill322; BE-NEXT: stfd f28, 272(r1) # 8-byte Folded Spill323; BE-NEXT: stfd f29, 280(r1) # 8-byte Folded Spill324; BE-NEXT: stfd f30, 288(r1) # 8-byte Folded Spill325; BE-NEXT: stfd f31, 296(r1) # 8-byte Folded Spill326; BE-NEXT: fmr f31, f8327; BE-NEXT: fmr f30, f7328; BE-NEXT: fmr f29, f6329; BE-NEXT: fmr f28, f5330; BE-NEXT: fmr f27, f4331; BE-NEXT: fmr f26, f3332; BE-NEXT: bl __truncsfhf2333; BE-NEXT: nop334; BE-NEXT: fmr f1, f25335; BE-NEXT: mr r30, r3336; BE-NEXT: bl __truncsfhf2337; BE-NEXT: nop338; BE-NEXT: fmr f1, f27339; BE-NEXT: mr r29, r3340; BE-NEXT: bl __truncsfhf2341; BE-NEXT: nop342; BE-NEXT: fmr f1, f26343; BE-NEXT: mr r28, r3344; BE-NEXT: bl __truncsfhf2345; BE-NEXT: nop346; BE-NEXT: fmr f1, f29347; BE-NEXT: mr r27, r3348; BE-NEXT: bl __truncsfhf2349; BE-NEXT: nop350; BE-NEXT: fmr f1, f28351; BE-NEXT: mr r26, r3352; BE-NEXT: bl __truncsfhf2353; BE-NEXT: nop354; BE-NEXT: fmr f1, f31355; BE-NEXT: mr r25, r3356; BE-NEXT: bl __truncsfhf2357; BE-NEXT: nop358; BE-NEXT: fmr f1, f30359; BE-NEXT: mr r24, r3360; BE-NEXT: bl __truncsfhf2361; BE-NEXT: nop362; BE-NEXT: clrldi r3, r3, 48363; BE-NEXT: bl __extendhfsf2364; BE-NEXT: nop365; BE-NEXT: clrldi r3, r24, 48366; BE-NEXT: fmr f31, f1367; BE-NEXT: bl __extendhfsf2368; BE-NEXT: nop369; BE-NEXT: clrldi r3, r25, 48370; BE-NEXT: fmr f30, f1371; BE-NEXT: bl __extendhfsf2372; BE-NEXT: nop373; BE-NEXT: clrldi r3, r26, 48374; BE-NEXT: fmr f29, f1375; BE-NEXT: bl __extendhfsf2376; BE-NEXT: nop377; BE-NEXT: clrldi r3, r27, 48378; BE-NEXT: fmr f28, f1379; BE-NEXT: bl __extendhfsf2380; BE-NEXT: nop381; BE-NEXT: clrldi r3, r28, 48382; BE-NEXT: fmr f27, f1383; BE-NEXT: bl __extendhfsf2384; BE-NEXT: nop385; BE-NEXT: clrldi r3, r29, 48386; BE-NEXT: fmr f26, f1387; BE-NEXT: bl __extendhfsf2388; BE-NEXT: nop389; BE-NEXT: clrldi r3, r30, 48390; BE-NEXT: fmr f25, f1391; BE-NEXT: bl __extendhfsf2392; BE-NEXT: nop393; BE-NEXT: bl lrintf394; BE-NEXT: nop395; BE-NEXT: fmr f1, f25396; BE-NEXT: std r3, 120(r1)397; BE-NEXT: bl lrintf398; BE-NEXT: nop399; BE-NEXT: fmr f1, f26400; BE-NEXT: std r3, 112(r1)401; BE-NEXT: bl lrintf402; BE-NEXT: nop403; BE-NEXT: fmr f1, f27404; BE-NEXT: std r3, 136(r1)405; BE-NEXT: bl lrintf406; BE-NEXT: nop407; BE-NEXT: fmr f1, f28408; BE-NEXT: std r3, 128(r1)409; BE-NEXT: bl lrintf410; BE-NEXT: nop411; BE-NEXT: fmr f1, f29412; BE-NEXT: std r3, 152(r1)413; BE-NEXT: bl lrintf414; BE-NEXT: nop415; BE-NEXT: fmr f1, f30416; BE-NEXT: std r3, 144(r1)417; BE-NEXT: bl lrintf418; BE-NEXT: nop419; BE-NEXT: fmr f1, f31420; BE-NEXT: std r3, 168(r1)421; BE-NEXT: bl lrintf422; BE-NEXT: nop423; BE-NEXT: std r3, 160(r1)424; BE-NEXT: addi r3, r1, 112425; BE-NEXT: ld r30, 232(r1) # 8-byte Folded Reload426; BE-NEXT: lfd f31, 296(r1) # 8-byte Folded Reload427; BE-NEXT: lfd f30, 288(r1) # 8-byte Folded Reload428; BE-NEXT: lfd f29, 280(r1) # 8-byte Folded Reload429; BE-NEXT: lxvd2x v2, 0, r3430; BE-NEXT: addi r3, r1, 128431; BE-NEXT: lfd f28, 272(r1) # 8-byte Folded Reload432; BE-NEXT: lfd f27, 264(r1) # 8-byte Folded Reload433; BE-NEXT: lfd f26, 256(r1) # 8-byte Folded Reload434; BE-NEXT: ld r29, 224(r1) # 8-byte Folded Reload435; BE-NEXT: ld r28, 216(r1) # 8-byte Folded Reload436; BE-NEXT: lxvd2x v3, 0, r3437; BE-NEXT: addi r3, r1, 144438; BE-NEXT: lfd f25, 248(r1) # 8-byte Folded Reload439; BE-NEXT: ld r27, 208(r1) # 8-byte Folded Reload440; BE-NEXT: ld r26, 200(r1) # 8-byte Folded Reload441; BE-NEXT: ld r25, 192(r1) # 8-byte Folded Reload442; BE-NEXT: ld r24, 184(r1) # 8-byte Folded Reload443; BE-NEXT: lxvd2x v4, 0, r3444; BE-NEXT: addi r3, r1, 160445; BE-NEXT: lxvd2x v5, 0, r3446; BE-NEXT: addi r1, r1, 304447; BE-NEXT: ld r0, 16(r1)448; BE-NEXT: mtlr r0449; BE-NEXT: blr450;451; CHECK-LABEL: lrint_v8f16:452; CHECK: # %bb.0:453; CHECK-NEXT: mflr r0454; CHECK-NEXT: stdu r1, -240(r1)455; CHECK-NEXT: li r3, 48456; CHECK-NEXT: std r0, 256(r1)457; CHECK-NEXT: std r24, 120(r1) # 8-byte Folded Spill458; CHECK-NEXT: std r25, 128(r1) # 8-byte Folded Spill459; CHECK-NEXT: std r26, 136(r1) # 8-byte Folded Spill460; CHECK-NEXT: std r27, 144(r1) # 8-byte Folded Spill461; CHECK-NEXT: std r28, 152(r1) # 8-byte Folded Spill462; CHECK-NEXT: std r29, 160(r1) # 8-byte Folded Spill463; CHECK-NEXT: stxvd2x v28, r1, r3 # 16-byte Folded Spill464; CHECK-NEXT: li r3, 64465; CHECK-NEXT: std r30, 168(r1) # 8-byte Folded Spill466; CHECK-NEXT: stfd f25, 184(r1) # 8-byte Folded Spill467; CHECK-NEXT: fmr f25, f2468; CHECK-NEXT: stfd f26, 192(r1) # 8-byte Folded Spill469; CHECK-NEXT: fmr f26, f3470; CHECK-NEXT: stfd f27, 200(r1) # 8-byte Folded Spill471; CHECK-NEXT: fmr f27, f4472; CHECK-NEXT: stxvd2x v29, r1, r3 # 16-byte Folded Spill473; CHECK-NEXT: li r3, 80474; CHECK-NEXT: stfd f28, 208(r1) # 8-byte Folded Spill475; CHECK-NEXT: fmr f28, f5476; CHECK-NEXT: stfd f29, 216(r1) # 8-byte Folded Spill477; CHECK-NEXT: fmr f29, f6478; CHECK-NEXT: stfd f30, 224(r1) # 8-byte Folded Spill479; CHECK-NEXT: fmr f30, f7480; CHECK-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill481; CHECK-NEXT: li r3, 96482; CHECK-NEXT: stfd f31, 232(r1) # 8-byte Folded Spill483; CHECK-NEXT: fmr f31, f8484; CHECK-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill485; CHECK-NEXT: bl __truncsfhf2486; CHECK-NEXT: nop487; CHECK-NEXT: fmr f1, f25488; CHECK-NEXT: mr r30, r3489; CHECK-NEXT: bl __truncsfhf2490; CHECK-NEXT: nop491; CHECK-NEXT: fmr f1, f26492; CHECK-NEXT: mr r29, r3493; CHECK-NEXT: bl __truncsfhf2494; CHECK-NEXT: nop495; CHECK-NEXT: fmr f1, f27496; CHECK-NEXT: mr r28, r3497; CHECK-NEXT: bl __truncsfhf2498; CHECK-NEXT: nop499; CHECK-NEXT: fmr f1, f28500; CHECK-NEXT: mr r27, r3501; CHECK-NEXT: bl __truncsfhf2502; CHECK-NEXT: nop503; CHECK-NEXT: fmr f1, f29504; CHECK-NEXT: mr r26, r3505; CHECK-NEXT: bl __truncsfhf2506; CHECK-NEXT: nop507; CHECK-NEXT: fmr f1, f30508; CHECK-NEXT: mr r25, r3509; CHECK-NEXT: bl __truncsfhf2510; CHECK-NEXT: nop511; CHECK-NEXT: fmr f1, f31512; CHECK-NEXT: mr r24, r3513; CHECK-NEXT: bl __truncsfhf2514; CHECK-NEXT: nop515; CHECK-NEXT: clrldi r3, r3, 48516; CHECK-NEXT: bl __extendhfsf2517; CHECK-NEXT: nop518; CHECK-NEXT: clrldi r3, r24, 48519; CHECK-NEXT: fmr f31, f1520; CHECK-NEXT: bl __extendhfsf2521; CHECK-NEXT: nop522; CHECK-NEXT: clrldi r3, r25, 48523; CHECK-NEXT: fmr f30, f1524; CHECK-NEXT: bl __extendhfsf2525; CHECK-NEXT: nop526; CHECK-NEXT: clrldi r3, r26, 48527; CHECK-NEXT: fmr f29, f1528; CHECK-NEXT: bl __extendhfsf2529; CHECK-NEXT: nop530; CHECK-NEXT: clrldi r3, r27, 48531; CHECK-NEXT: fmr f28, f1532; CHECK-NEXT: bl __extendhfsf2533; CHECK-NEXT: nop534; CHECK-NEXT: clrldi r3, r28, 48535; CHECK-NEXT: fmr f27, f1536; CHECK-NEXT: bl __extendhfsf2537; CHECK-NEXT: nop538; CHECK-NEXT: clrldi r3, r29, 48539; CHECK-NEXT: fmr f26, f1540; CHECK-NEXT: bl __extendhfsf2541; CHECK-NEXT: nop542; CHECK-NEXT: clrldi r3, r30, 48543; CHECK-NEXT: fmr f25, f1544; CHECK-NEXT: bl __extendhfsf2545; CHECK-NEXT: nop546; CHECK-NEXT: bl lrintf547; CHECK-NEXT: nop548; CHECK-NEXT: fmr f1, f25549; CHECK-NEXT: mtvsrd v31, r3550; CHECK-NEXT: bl lrintf551; CHECK-NEXT: nop552; CHECK-NEXT: fmr f1, f26553; CHECK-NEXT: mtfprd f0, r3554; CHECK-NEXT: xxmrghd v31, vs0, v31555; CHECK-NEXT: bl lrintf556; CHECK-NEXT: nop557; CHECK-NEXT: fmr f1, f27558; CHECK-NEXT: mtvsrd v30, r3559; CHECK-NEXT: bl lrintf560; CHECK-NEXT: nop561; CHECK-NEXT: fmr f1, f28562; CHECK-NEXT: mtfprd f0, r3563; CHECK-NEXT: xxmrghd v30, vs0, v30564; CHECK-NEXT: bl lrintf565; CHECK-NEXT: nop566; CHECK-NEXT: fmr f1, f29567; CHECK-NEXT: mtvsrd v29, r3568; CHECK-NEXT: bl lrintf569; CHECK-NEXT: nop570; CHECK-NEXT: fmr f1, f30571; CHECK-NEXT: mtfprd f0, r3572; CHECK-NEXT: xxmrghd v29, vs0, v29573; CHECK-NEXT: bl lrintf574; CHECK-NEXT: nop575; CHECK-NEXT: fmr f1, f31576; CHECK-NEXT: mtvsrd v28, r3577; CHECK-NEXT: bl lrintf578; CHECK-NEXT: nop579; CHECK-NEXT: mtfprd f0, r3580; CHECK-NEXT: li r3, 96581; CHECK-NEXT: vmr v2, v31582; CHECK-NEXT: lfd f31, 232(r1) # 8-byte Folded Reload583; CHECK-NEXT: vmr v3, v30584; CHECK-NEXT: vmr v4, v29585; CHECK-NEXT: lfd f30, 224(r1) # 8-byte Folded Reload586; CHECK-NEXT: lfd f29, 216(r1) # 8-byte Folded Reload587; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload588; CHECK-NEXT: li r3, 80589; CHECK-NEXT: lfd f28, 208(r1) # 8-byte Folded Reload590; CHECK-NEXT: lfd f27, 200(r1) # 8-byte Folded Reload591; CHECK-NEXT: lfd f26, 192(r1) # 8-byte Folded Reload592; CHECK-NEXT: lfd f25, 184(r1) # 8-byte Folded Reload593; CHECK-NEXT: ld r30, 168(r1) # 8-byte Folded Reload594; CHECK-NEXT: ld r29, 160(r1) # 8-byte Folded Reload595; CHECK-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload596; CHECK-NEXT: li r3, 64597; CHECK-NEXT: ld r28, 152(r1) # 8-byte Folded Reload598; CHECK-NEXT: ld r27, 144(r1) # 8-byte Folded Reload599; CHECK-NEXT: xxmrghd v5, vs0, v28600; CHECK-NEXT: ld r26, 136(r1) # 8-byte Folded Reload601; CHECK-NEXT: ld r25, 128(r1) # 8-byte Folded Reload602; CHECK-NEXT: ld r24, 120(r1) # 8-byte Folded Reload603; CHECK-NEXT: lxvd2x v29, r1, r3 # 16-byte Folded Reload604; CHECK-NEXT: li r3, 48605; CHECK-NEXT: lxvd2x v28, r1, r3 # 16-byte Folded Reload606; CHECK-NEXT: addi r1, r1, 240607; CHECK-NEXT: ld r0, 16(r1)608; CHECK-NEXT: mtlr r0609; CHECK-NEXT: blr610 %a = call <8 x i64> @llvm.lrint.v8i64.v8f16(<8 x half> %x)611 ret <8 x i64> %a612}613declare <8 x i64> @llvm.lrint.v8i64.v8f16(<8 x half>)614 615define <16 x i64> @lrint_v16i64_v16f16(<16 x half> %x) nounwind {616; BE-LABEL: lrint_v16i64_v16f16:617; BE: # %bb.0:618; BE-NEXT: mflr r0619; BE-NEXT: stdu r1, -496(r1)620; BE-NEXT: std r0, 512(r1)621; BE-NEXT: stfd f20, 400(r1) # 8-byte Folded Spill622; BE-NEXT: fmr f20, f1623; BE-NEXT: fmr f1, f2624; BE-NEXT: std r16, 248(r1) # 8-byte Folded Spill625; BE-NEXT: std r17, 256(r1) # 8-byte Folded Spill626; BE-NEXT: std r18, 264(r1) # 8-byte Folded Spill627; BE-NEXT: std r19, 272(r1) # 8-byte Folded Spill628; BE-NEXT: std r20, 280(r1) # 8-byte Folded Spill629; BE-NEXT: std r21, 288(r1) # 8-byte Folded Spill630; BE-NEXT: std r22, 296(r1) # 8-byte Folded Spill631; BE-NEXT: std r23, 304(r1) # 8-byte Folded Spill632; BE-NEXT: std r24, 312(r1) # 8-byte Folded Spill633; BE-NEXT: std r25, 320(r1) # 8-byte Folded Spill634; BE-NEXT: std r26, 328(r1) # 8-byte Folded Spill635; BE-NEXT: std r27, 336(r1) # 8-byte Folded Spill636; BE-NEXT: std r28, 344(r1) # 8-byte Folded Spill637; BE-NEXT: std r29, 352(r1) # 8-byte Folded Spill638; BE-NEXT: std r30, 360(r1) # 8-byte Folded Spill639; BE-NEXT: stfd f17, 376(r1) # 8-byte Folded Spill640; BE-NEXT: stfd f18, 384(r1) # 8-byte Folded Spill641; BE-NEXT: stfd f19, 392(r1) # 8-byte Folded Spill642; BE-NEXT: stfd f21, 408(r1) # 8-byte Folded Spill643; BE-NEXT: stfd f22, 416(r1) # 8-byte Folded Spill644; BE-NEXT: stfd f23, 424(r1) # 8-byte Folded Spill645; BE-NEXT: stfd f24, 432(r1) # 8-byte Folded Spill646; BE-NEXT: stfd f25, 440(r1) # 8-byte Folded Spill647; BE-NEXT: stfd f26, 448(r1) # 8-byte Folded Spill648; BE-NEXT: stfd f27, 456(r1) # 8-byte Folded Spill649; BE-NEXT: stfd f28, 464(r1) # 8-byte Folded Spill650; BE-NEXT: stfd f29, 472(r1) # 8-byte Folded Spill651; BE-NEXT: stfd f30, 480(r1) # 8-byte Folded Spill652; BE-NEXT: stfd f31, 488(r1) # 8-byte Folded Spill653; BE-NEXT: fmr f31, f13654; BE-NEXT: fmr f29, f12655; BE-NEXT: fmr f30, f11656; BE-NEXT: fmr f28, f10657; BE-NEXT: fmr f27, f9658; BE-NEXT: fmr f26, f8659; BE-NEXT: fmr f25, f7660; BE-NEXT: fmr f24, f6661; BE-NEXT: fmr f23, f5662; BE-NEXT: fmr f22, f4663; BE-NEXT: fmr f21, f3664; BE-NEXT: bl __truncsfhf2665; BE-NEXT: nop666; BE-NEXT: fmr f1, f20667; BE-NEXT: mr r30, r3668; BE-NEXT: bl __truncsfhf2669; BE-NEXT: nop670; BE-NEXT: fmr f1, f22671; BE-NEXT: mr r29, r3672; BE-NEXT: bl __truncsfhf2673; BE-NEXT: nop674; BE-NEXT: fmr f1, f21675; BE-NEXT: mr r28, r3676; BE-NEXT: bl __truncsfhf2677; BE-NEXT: nop678; BE-NEXT: fmr f1, f24679; BE-NEXT: mr r27, r3680; BE-NEXT: bl __truncsfhf2681; BE-NEXT: nop682; BE-NEXT: fmr f1, f23683; BE-NEXT: mr r26, r3684; BE-NEXT: bl __truncsfhf2685; BE-NEXT: nop686; BE-NEXT: fmr f1, f26687; BE-NEXT: mr r25, r3688; BE-NEXT: bl __truncsfhf2689; BE-NEXT: nop690; BE-NEXT: fmr f1, f25691; BE-NEXT: mr r24, r3692; BE-NEXT: bl __truncsfhf2693; BE-NEXT: nop694; BE-NEXT: fmr f1, f28695; BE-NEXT: mr r23, r3696; BE-NEXT: bl __truncsfhf2697; BE-NEXT: nop698; BE-NEXT: fmr f1, f27699; BE-NEXT: mr r22, r3700; BE-NEXT: bl __truncsfhf2701; BE-NEXT: nop702; BE-NEXT: fmr f1, f29703; BE-NEXT: mr r21, r3704; BE-NEXT: bl __truncsfhf2705; BE-NEXT: nop706; BE-NEXT: fmr f1, f30707; BE-NEXT: mr r20, r3708; BE-NEXT: bl __truncsfhf2709; BE-NEXT: nop710; BE-NEXT: lfs f1, 652(r1)711; BE-NEXT: mr r19, r3712; BE-NEXT: bl __truncsfhf2713; BE-NEXT: nop714; BE-NEXT: fmr f1, f31715; BE-NEXT: mr r18, r3716; BE-NEXT: bl __truncsfhf2717; BE-NEXT: nop718; BE-NEXT: lfs f1, 668(r1)719; BE-NEXT: mr r17, r3720; BE-NEXT: bl __truncsfhf2721; BE-NEXT: nop722; BE-NEXT: lfs f1, 660(r1)723; BE-NEXT: mr r16, r3724; BE-NEXT: bl __truncsfhf2725; BE-NEXT: nop726; BE-NEXT: clrldi r3, r3, 48727; BE-NEXT: bl __extendhfsf2728; BE-NEXT: nop729; BE-NEXT: clrldi r3, r16, 48730; BE-NEXT: fmr f31, f1731; BE-NEXT: bl __extendhfsf2732; BE-NEXT: nop733; BE-NEXT: clrldi r3, r17, 48734; BE-NEXT: fmr f30, f1735; BE-NEXT: bl __extendhfsf2736; BE-NEXT: nop737; BE-NEXT: clrldi r3, r18, 48738; BE-NEXT: fmr f29, f1739; BE-NEXT: bl __extendhfsf2740; BE-NEXT: nop741; BE-NEXT: clrldi r3, r19, 48742; BE-NEXT: fmr f28, f1743; BE-NEXT: bl __extendhfsf2744; BE-NEXT: nop745; BE-NEXT: clrldi r3, r20, 48746; BE-NEXT: fmr f27, f1747; BE-NEXT: bl __extendhfsf2748; BE-NEXT: nop749; BE-NEXT: clrldi r3, r21, 48750; BE-NEXT: fmr f26, f1751; BE-NEXT: bl __extendhfsf2752; BE-NEXT: nop753; BE-NEXT: clrldi r3, r22, 48754; BE-NEXT: fmr f25, f1755; BE-NEXT: bl __extendhfsf2756; BE-NEXT: nop757; BE-NEXT: clrldi r3, r23, 48758; BE-NEXT: fmr f24, f1759; BE-NEXT: bl __extendhfsf2760; BE-NEXT: nop761; BE-NEXT: clrldi r3, r24, 48762; BE-NEXT: fmr f23, f1763; BE-NEXT: bl __extendhfsf2764; BE-NEXT: nop765; BE-NEXT: clrldi r3, r25, 48766; BE-NEXT: fmr f22, f1767; BE-NEXT: bl __extendhfsf2768; BE-NEXT: nop769; BE-NEXT: clrldi r3, r26, 48770; BE-NEXT: fmr f21, f1771; BE-NEXT: bl __extendhfsf2772; BE-NEXT: nop773; BE-NEXT: clrldi r3, r27, 48774; BE-NEXT: fmr f20, f1775; BE-NEXT: bl __extendhfsf2776; BE-NEXT: nop777; BE-NEXT: clrldi r3, r28, 48778; BE-NEXT: fmr f19, f1779; BE-NEXT: bl __extendhfsf2780; BE-NEXT: nop781; BE-NEXT: clrldi r3, r29, 48782; BE-NEXT: fmr f18, f1783; BE-NEXT: bl __extendhfsf2784; BE-NEXT: nop785; BE-NEXT: clrldi r3, r30, 48786; BE-NEXT: fmr f17, f1787; BE-NEXT: bl __extendhfsf2788; BE-NEXT: nop789; BE-NEXT: bl lrintf790; BE-NEXT: nop791; BE-NEXT: fmr f1, f17792; BE-NEXT: std r3, 120(r1)793; BE-NEXT: bl lrintf794; BE-NEXT: nop795; BE-NEXT: fmr f1, f18796; BE-NEXT: std r3, 112(r1)797; BE-NEXT: bl lrintf798; BE-NEXT: nop799; BE-NEXT: fmr f1, f19800; BE-NEXT: std r3, 136(r1)801; BE-NEXT: bl lrintf802; BE-NEXT: nop803; BE-NEXT: fmr f1, f20804; BE-NEXT: std r3, 128(r1)805; BE-NEXT: bl lrintf806; BE-NEXT: nop807; BE-NEXT: fmr f1, f21808; BE-NEXT: std r3, 152(r1)809; BE-NEXT: bl lrintf810; BE-NEXT: nop811; BE-NEXT: fmr f1, f22812; BE-NEXT: std r3, 144(r1)813; BE-NEXT: bl lrintf814; BE-NEXT: nop815; BE-NEXT: fmr f1, f23816; BE-NEXT: std r3, 168(r1)817; BE-NEXT: bl lrintf818; BE-NEXT: nop819; BE-NEXT: fmr f1, f24820; BE-NEXT: std r3, 160(r1)821; BE-NEXT: bl lrintf822; BE-NEXT: nop823; BE-NEXT: fmr f1, f25824; BE-NEXT: std r3, 184(r1)825; BE-NEXT: bl lrintf826; BE-NEXT: nop827; BE-NEXT: fmr f1, f26828; BE-NEXT: std r3, 176(r1)829; BE-NEXT: bl lrintf830; BE-NEXT: nop831; BE-NEXT: fmr f1, f27832; BE-NEXT: std r3, 200(r1)833; BE-NEXT: bl lrintf834; BE-NEXT: nop835; BE-NEXT: fmr f1, f28836; BE-NEXT: std r3, 192(r1)837; BE-NEXT: bl lrintf838; BE-NEXT: nop839; BE-NEXT: fmr f1, f29840; BE-NEXT: std r3, 216(r1)841; BE-NEXT: bl lrintf842; BE-NEXT: nop843; BE-NEXT: fmr f1, f30844; BE-NEXT: std r3, 208(r1)845; BE-NEXT: bl lrintf846; BE-NEXT: nop847; BE-NEXT: fmr f1, f31848; BE-NEXT: std r3, 232(r1)849; BE-NEXT: bl lrintf850; BE-NEXT: nop851; BE-NEXT: std r3, 224(r1)852; BE-NEXT: addi r3, r1, 112853; BE-NEXT: ld r30, 360(r1) # 8-byte Folded Reload854; BE-NEXT: lfd f31, 488(r1) # 8-byte Folded Reload855; BE-NEXT: lfd f30, 480(r1) # 8-byte Folded Reload856; BE-NEXT: lfd f29, 472(r1) # 8-byte Folded Reload857; BE-NEXT: lxvd2x v2, 0, r3858; BE-NEXT: addi r3, r1, 128859; BE-NEXT: lfd f28, 464(r1) # 8-byte Folded Reload860; BE-NEXT: lfd f27, 456(r1) # 8-byte Folded Reload861; BE-NEXT: lfd f26, 448(r1) # 8-byte Folded Reload862; BE-NEXT: ld r29, 352(r1) # 8-byte Folded Reload863; BE-NEXT: ld r28, 344(r1) # 8-byte Folded Reload864; BE-NEXT: lxvd2x v3, 0, r3865; BE-NEXT: addi r3, r1, 144866; BE-NEXT: lfd f25, 440(r1) # 8-byte Folded Reload867; BE-NEXT: lfd f24, 432(r1) # 8-byte Folded Reload868; BE-NEXT: lfd f23, 424(r1) # 8-byte Folded Reload869; BE-NEXT: ld r27, 336(r1) # 8-byte Folded Reload870; BE-NEXT: ld r26, 328(r1) # 8-byte Folded Reload871; BE-NEXT: lxvd2x v4, 0, r3872; BE-NEXT: addi r3, r1, 160873; BE-NEXT: lfd f22, 416(r1) # 8-byte Folded Reload874; BE-NEXT: lfd f21, 408(r1) # 8-byte Folded Reload875; BE-NEXT: lfd f20, 400(r1) # 8-byte Folded Reload876; BE-NEXT: ld r25, 320(r1) # 8-byte Folded Reload877; BE-NEXT: ld r24, 312(r1) # 8-byte Folded Reload878; BE-NEXT: lxvd2x v5, 0, r3879; BE-NEXT: addi r3, r1, 176880; BE-NEXT: lfd f19, 392(r1) # 8-byte Folded Reload881; BE-NEXT: lfd f18, 384(r1) # 8-byte Folded Reload882; BE-NEXT: lfd f17, 376(r1) # 8-byte Folded Reload883; BE-NEXT: ld r23, 304(r1) # 8-byte Folded Reload884; BE-NEXT: ld r22, 296(r1) # 8-byte Folded Reload885; BE-NEXT: lxvd2x v6, 0, r3886; BE-NEXT: addi r3, r1, 192887; BE-NEXT: ld r21, 288(r1) # 8-byte Folded Reload888; BE-NEXT: ld r20, 280(r1) # 8-byte Folded Reload889; BE-NEXT: ld r19, 272(r1) # 8-byte Folded Reload890; BE-NEXT: ld r18, 264(r1) # 8-byte Folded Reload891; BE-NEXT: ld r17, 256(r1) # 8-byte Folded Reload892; BE-NEXT: ld r16, 248(r1) # 8-byte Folded Reload893; BE-NEXT: lxvd2x v7, 0, r3894; BE-NEXT: addi r3, r1, 208895; BE-NEXT: lxvd2x v8, 0, r3896; BE-NEXT: addi r3, r1, 224897; BE-NEXT: lxvd2x v9, 0, r3898; BE-NEXT: addi r1, r1, 496899; BE-NEXT: ld r0, 16(r1)900; BE-NEXT: mtlr r0901; BE-NEXT: blr902;903; CHECK-LABEL: lrint_v16i64_v16f16:904; CHECK: # %bb.0:905; CHECK-NEXT: mflr r0906; CHECK-NEXT: stdu r1, -432(r1)907; CHECK-NEXT: li r3, 48908; CHECK-NEXT: std r0, 448(r1)909; CHECK-NEXT: std r16, 184(r1) # 8-byte Folded Spill910; CHECK-NEXT: std r17, 192(r1) # 8-byte Folded Spill911; CHECK-NEXT: std r18, 200(r1) # 8-byte Folded Spill912; CHECK-NEXT: std r19, 208(r1) # 8-byte Folded Spill913; CHECK-NEXT: std r20, 216(r1) # 8-byte Folded Spill914; CHECK-NEXT: std r21, 224(r1) # 8-byte Folded Spill915; CHECK-NEXT: stxvd2x v24, r1, r3 # 16-byte Folded Spill916; CHECK-NEXT: li r3, 64917; CHECK-NEXT: std r22, 232(r1) # 8-byte Folded Spill918; CHECK-NEXT: std r23, 240(r1) # 8-byte Folded Spill919; CHECK-NEXT: std r24, 248(r1) # 8-byte Folded Spill920; CHECK-NEXT: std r25, 256(r1) # 8-byte Folded Spill921; CHECK-NEXT: std r26, 264(r1) # 8-byte Folded Spill922; CHECK-NEXT: std r27, 272(r1) # 8-byte Folded Spill923; CHECK-NEXT: stxvd2x v25, r1, r3 # 16-byte Folded Spill924; CHECK-NEXT: li r3, 80925; CHECK-NEXT: std r28, 280(r1) # 8-byte Folded Spill926; CHECK-NEXT: std r29, 288(r1) # 8-byte Folded Spill927; CHECK-NEXT: std r30, 296(r1) # 8-byte Folded Spill928; CHECK-NEXT: stfd f17, 312(r1) # 8-byte Folded Spill929; CHECK-NEXT: stfd f18, 320(r1) # 8-byte Folded Spill930; CHECK-NEXT: stfd f19, 328(r1) # 8-byte Folded Spill931; CHECK-NEXT: stxvd2x v26, r1, r3 # 16-byte Folded Spill932; CHECK-NEXT: li r3, 96933; CHECK-NEXT: stfd f20, 336(r1) # 8-byte Folded Spill934; CHECK-NEXT: fmr f20, f2935; CHECK-NEXT: stfd f21, 344(r1) # 8-byte Folded Spill936; CHECK-NEXT: fmr f21, f3937; CHECK-NEXT: stfd f22, 352(r1) # 8-byte Folded Spill938; CHECK-NEXT: fmr f22, f4939; CHECK-NEXT: stxvd2x v27, r1, r3 # 16-byte Folded Spill940; CHECK-NEXT: li r3, 112941; CHECK-NEXT: stfd f23, 360(r1) # 8-byte Folded Spill942; CHECK-NEXT: fmr f23, f5943; CHECK-NEXT: stfd f24, 368(r1) # 8-byte Folded Spill944; CHECK-NEXT: fmr f24, f6945; CHECK-NEXT: stfd f25, 376(r1) # 8-byte Folded Spill946; CHECK-NEXT: fmr f25, f7947; CHECK-NEXT: stxvd2x v28, r1, r3 # 16-byte Folded Spill948; CHECK-NEXT: li r3, 128949; CHECK-NEXT: stfd f26, 384(r1) # 8-byte Folded Spill950; CHECK-NEXT: fmr f26, f8951; CHECK-NEXT: stfd f27, 392(r1) # 8-byte Folded Spill952; CHECK-NEXT: fmr f27, f9953; CHECK-NEXT: stfd f28, 400(r1) # 8-byte Folded Spill954; CHECK-NEXT: fmr f28, f10955; CHECK-NEXT: stxvd2x v29, r1, r3 # 16-byte Folded Spill956; CHECK-NEXT: li r3, 144957; CHECK-NEXT: stfd f29, 408(r1) # 8-byte Folded Spill958; CHECK-NEXT: fmr f29, f11959; CHECK-NEXT: stfd f30, 416(r1) # 8-byte Folded Spill960; CHECK-NEXT: fmr f30, f12961; CHECK-NEXT: stfd f31, 424(r1) # 8-byte Folded Spill962; CHECK-NEXT: fmr f31, f13963; CHECK-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill964; CHECK-NEXT: li r3, 160965; CHECK-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill966; CHECK-NEXT: bl __truncsfhf2967; CHECK-NEXT: nop968; CHECK-NEXT: fmr f1, f20969; CHECK-NEXT: mr r30, r3970; CHECK-NEXT: bl __truncsfhf2971; CHECK-NEXT: nop972; CHECK-NEXT: fmr f1, f21973; CHECK-NEXT: mr r29, r3974; CHECK-NEXT: bl __truncsfhf2975; CHECK-NEXT: nop976; CHECK-NEXT: fmr f1, f22977; CHECK-NEXT: mr r28, r3978; CHECK-NEXT: bl __truncsfhf2979; CHECK-NEXT: nop980; CHECK-NEXT: fmr f1, f23981; CHECK-NEXT: mr r27, r3982; CHECK-NEXT: bl __truncsfhf2983; CHECK-NEXT: nop984; CHECK-NEXT: fmr f1, f24985; CHECK-NEXT: mr r26, r3986; CHECK-NEXT: bl __truncsfhf2987; CHECK-NEXT: nop988; CHECK-NEXT: fmr f1, f25989; CHECK-NEXT: mr r25, r3990; CHECK-NEXT: bl __truncsfhf2991; CHECK-NEXT: nop992; CHECK-NEXT: fmr f1, f26993; CHECK-NEXT: mr r24, r3994; CHECK-NEXT: bl __truncsfhf2995; CHECK-NEXT: nop996; CHECK-NEXT: fmr f1, f27997; CHECK-NEXT: mr r23, r3998; CHECK-NEXT: bl __truncsfhf2999; CHECK-NEXT: nop1000; CHECK-NEXT: fmr f1, f281001; CHECK-NEXT: mr r22, r31002; CHECK-NEXT: bl __truncsfhf21003; CHECK-NEXT: nop1004; CHECK-NEXT: fmr f1, f291005; CHECK-NEXT: mr r21, r31006; CHECK-NEXT: bl __truncsfhf21007; CHECK-NEXT: nop1008; CHECK-NEXT: fmr f1, f301009; CHECK-NEXT: mr r20, r31010; CHECK-NEXT: bl __truncsfhf21011; CHECK-NEXT: nop1012; CHECK-NEXT: fmr f1, f311013; CHECK-NEXT: mr r19, r31014; CHECK-NEXT: bl __truncsfhf21015; CHECK-NEXT: nop1016; CHECK-NEXT: lfs f1, 568(r1)1017; CHECK-NEXT: mr r18, r31018; CHECK-NEXT: bl __truncsfhf21019; CHECK-NEXT: nop1020; CHECK-NEXT: lfs f1, 576(r1)1021; CHECK-NEXT: mr r17, r31022; CHECK-NEXT: bl __truncsfhf21023; CHECK-NEXT: nop1024; CHECK-NEXT: lfs f1, 584(r1)1025; CHECK-NEXT: mr r16, r31026; CHECK-NEXT: bl __truncsfhf21027; CHECK-NEXT: nop1028; CHECK-NEXT: clrldi r3, r3, 481029; CHECK-NEXT: bl __extendhfsf21030; CHECK-NEXT: nop1031; CHECK-NEXT: clrldi r3, r16, 481032; CHECK-NEXT: fmr f31, f11033; CHECK-NEXT: bl __extendhfsf21034; CHECK-NEXT: nop1035; CHECK-NEXT: clrldi r3, r17, 481036; CHECK-NEXT: fmr f30, f11037; CHECK-NEXT: bl __extendhfsf21038; CHECK-NEXT: nop1039; CHECK-NEXT: clrldi r3, r18, 481040; CHECK-NEXT: fmr f29, f11041; CHECK-NEXT: bl __extendhfsf21042; CHECK-NEXT: nop1043; CHECK-NEXT: clrldi r3, r19, 481044; CHECK-NEXT: fmr f28, f11045; CHECK-NEXT: bl __extendhfsf21046; CHECK-NEXT: nop1047; CHECK-NEXT: clrldi r3, r20, 481048; CHECK-NEXT: fmr f27, f11049; CHECK-NEXT: bl __extendhfsf21050; CHECK-NEXT: nop1051; CHECK-NEXT: clrldi r3, r21, 481052; CHECK-NEXT: fmr f26, f11053; CHECK-NEXT: bl __extendhfsf21054; CHECK-NEXT: nop1055; CHECK-NEXT: clrldi r3, r22, 481056; CHECK-NEXT: fmr f25, f11057; CHECK-NEXT: bl __extendhfsf21058; CHECK-NEXT: nop1059; CHECK-NEXT: clrldi r3, r23, 481060; CHECK-NEXT: fmr f24, f11061; CHECK-NEXT: bl __extendhfsf21062; CHECK-NEXT: nop1063; CHECK-NEXT: clrldi r3, r24, 481064; CHECK-NEXT: fmr f23, f11065; CHECK-NEXT: bl __extendhfsf21066; CHECK-NEXT: nop1067; CHECK-NEXT: clrldi r3, r25, 481068; CHECK-NEXT: fmr f22, f11069; CHECK-NEXT: bl __extendhfsf21070; CHECK-NEXT: nop1071; CHECK-NEXT: clrldi r3, r26, 481072; CHECK-NEXT: fmr f21, f11073; CHECK-NEXT: bl __extendhfsf21074; CHECK-NEXT: nop1075; CHECK-NEXT: clrldi r3, r27, 481076; CHECK-NEXT: fmr f20, f11077; CHECK-NEXT: bl __extendhfsf21078; CHECK-NEXT: nop1079; CHECK-NEXT: clrldi r3, r28, 481080; CHECK-NEXT: fmr f19, f11081; CHECK-NEXT: bl __extendhfsf21082; CHECK-NEXT: nop1083; CHECK-NEXT: clrldi r3, r29, 481084; CHECK-NEXT: fmr f18, f11085; CHECK-NEXT: bl __extendhfsf21086; CHECK-NEXT: nop1087; CHECK-NEXT: clrldi r3, r30, 481088; CHECK-NEXT: fmr f17, f11089; CHECK-NEXT: bl __extendhfsf21090; CHECK-NEXT: nop1091; CHECK-NEXT: bl lrintf1092; CHECK-NEXT: nop1093; CHECK-NEXT: fmr f1, f171094; CHECK-NEXT: mtvsrd v31, r31095; CHECK-NEXT: bl lrintf1096; CHECK-NEXT: nop1097; CHECK-NEXT: fmr f1, f181098; CHECK-NEXT: mtfprd f0, r31099; CHECK-NEXT: xxmrghd v31, vs0, v311100; CHECK-NEXT: bl lrintf1101; CHECK-NEXT: nop1102; CHECK-NEXT: fmr f1, f191103; CHECK-NEXT: mtvsrd v30, r31104; CHECK-NEXT: bl lrintf1105; CHECK-NEXT: nop1106; CHECK-NEXT: fmr f1, f201107; CHECK-NEXT: mtfprd f0, r31108; CHECK-NEXT: xxmrghd v30, vs0, v301109; CHECK-NEXT: bl lrintf1110; CHECK-NEXT: nop1111; CHECK-NEXT: fmr f1, f211112; CHECK-NEXT: mtvsrd v29, r31113; CHECK-NEXT: bl lrintf1114; CHECK-NEXT: nop1115; CHECK-NEXT: fmr f1, f221116; CHECK-NEXT: mtfprd f0, r31117; CHECK-NEXT: xxmrghd v29, vs0, v291118; CHECK-NEXT: bl lrintf1119; CHECK-NEXT: nop1120; CHECK-NEXT: fmr f1, f231121; CHECK-NEXT: mtvsrd v28, r31122; CHECK-NEXT: bl lrintf1123; CHECK-NEXT: nop1124; CHECK-NEXT: fmr f1, f241125; CHECK-NEXT: mtfprd f0, r31126; CHECK-NEXT: xxmrghd v28, vs0, v281127; CHECK-NEXT: bl lrintf1128; CHECK-NEXT: nop1129; CHECK-NEXT: fmr f1, f251130; CHECK-NEXT: mtvsrd v27, r31131; CHECK-NEXT: bl lrintf1132; CHECK-NEXT: nop1133; CHECK-NEXT: fmr f1, f261134; CHECK-NEXT: mtfprd f0, r31135; CHECK-NEXT: xxmrghd v27, vs0, v271136; CHECK-NEXT: bl lrintf1137; CHECK-NEXT: nop1138; CHECK-NEXT: fmr f1, f271139; CHECK-NEXT: mtvsrd v26, r31140; CHECK-NEXT: bl lrintf1141; CHECK-NEXT: nop1142; CHECK-NEXT: fmr f1, f281143; CHECK-NEXT: mtfprd f0, r31144; CHECK-NEXT: xxmrghd v26, vs0, v261145; CHECK-NEXT: bl lrintf1146; CHECK-NEXT: nop1147; CHECK-NEXT: fmr f1, f291148; CHECK-NEXT: mtvsrd v25, r31149; CHECK-NEXT: bl lrintf1150; CHECK-NEXT: nop1151; CHECK-NEXT: fmr f1, f301152; CHECK-NEXT: mtfprd f0, r31153; CHECK-NEXT: xxmrghd v25, vs0, v251154; CHECK-NEXT: bl lrintf1155; CHECK-NEXT: nop1156; CHECK-NEXT: fmr f1, f311157; CHECK-NEXT: mtvsrd v24, r31158; CHECK-NEXT: bl lrintf1159; CHECK-NEXT: nop1160; CHECK-NEXT: mtfprd f0, r31161; CHECK-NEXT: li r3, 1601162; CHECK-NEXT: vmr v2, v311163; CHECK-NEXT: lfd f31, 424(r1) # 8-byte Folded Reload1164; CHECK-NEXT: vmr v3, v301165; CHECK-NEXT: vmr v4, v291166; CHECK-NEXT: lfd f30, 416(r1) # 8-byte Folded Reload1167; CHECK-NEXT: lfd f29, 408(r1) # 8-byte Folded Reload1168; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload1169; CHECK-NEXT: li r3, 1441170; CHECK-NEXT: vmr v5, v281171; CHECK-NEXT: vmr v6, v271172; CHECK-NEXT: vmr v7, v261173; CHECK-NEXT: vmr v8, v251174; CHECK-NEXT: lfd f28, 400(r1) # 8-byte Folded Reload1175; CHECK-NEXT: lfd f27, 392(r1) # 8-byte Folded Reload1176; CHECK-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload1177; CHECK-NEXT: li r3, 1281178; CHECK-NEXT: lfd f26, 384(r1) # 8-byte Folded Reload1179; CHECK-NEXT: lfd f25, 376(r1) # 8-byte Folded Reload1180; CHECK-NEXT: xxmrghd v9, vs0, v241181; CHECK-NEXT: lfd f24, 368(r1) # 8-byte Folded Reload1182; CHECK-NEXT: lfd f23, 360(r1) # 8-byte Folded Reload1183; CHECK-NEXT: lfd f22, 352(r1) # 8-byte Folded Reload1184; CHECK-NEXT: lxvd2x v29, r1, r3 # 16-byte Folded Reload1185; CHECK-NEXT: li r3, 1121186; CHECK-NEXT: lfd f21, 344(r1) # 8-byte Folded Reload1187; CHECK-NEXT: ld r30, 296(r1) # 8-byte Folded Reload1188; CHECK-NEXT: lfd f20, 336(r1) # 8-byte Folded Reload1189; CHECK-NEXT: lfd f19, 328(r1) # 8-byte Folded Reload1190; CHECK-NEXT: ld r29, 288(r1) # 8-byte Folded Reload1191; CHECK-NEXT: ld r28, 280(r1) # 8-byte Folded Reload1192; CHECK-NEXT: lxvd2x v28, r1, r3 # 16-byte Folded Reload1193; CHECK-NEXT: li r3, 961194; CHECK-NEXT: lfd f18, 320(r1) # 8-byte Folded Reload1195; CHECK-NEXT: ld r27, 272(r1) # 8-byte Folded Reload1196; CHECK-NEXT: lfd f17, 312(r1) # 8-byte Folded Reload1197; CHECK-NEXT: ld r26, 264(r1) # 8-byte Folded Reload1198; CHECK-NEXT: ld r25, 256(r1) # 8-byte Folded Reload1199; CHECK-NEXT: ld r24, 248(r1) # 8-byte Folded Reload1200; CHECK-NEXT: lxvd2x v27, r1, r3 # 16-byte Folded Reload1201; CHECK-NEXT: li r3, 801202; CHECK-NEXT: ld r23, 240(r1) # 8-byte Folded Reload1203; CHECK-NEXT: ld r22, 232(r1) # 8-byte Folded Reload1204; CHECK-NEXT: ld r21, 224(r1) # 8-byte Folded Reload1205; CHECK-NEXT: ld r20, 216(r1) # 8-byte Folded Reload1206; CHECK-NEXT: ld r19, 208(r1) # 8-byte Folded Reload1207; CHECK-NEXT: ld r18, 200(r1) # 8-byte Folded Reload1208; CHECK-NEXT: lxvd2x v26, r1, r3 # 16-byte Folded Reload1209; CHECK-NEXT: li r3, 641210; CHECK-NEXT: ld r17, 192(r1) # 8-byte Folded Reload1211; CHECK-NEXT: ld r16, 184(r1) # 8-byte Folded Reload1212; CHECK-NEXT: lxvd2x v25, r1, r3 # 16-byte Folded Reload1213; CHECK-NEXT: li r3, 481214; CHECK-NEXT: lxvd2x v24, r1, r3 # 16-byte Folded Reload1215; CHECK-NEXT: addi r1, r1, 4321216; CHECK-NEXT: ld r0, 16(r1)1217; CHECK-NEXT: mtlr r01218; CHECK-NEXT: blr1219 %a = call <16 x i64> @llvm.lrint.v16i64.v16f16(<16 x half> %x)1220 ret <16 x i64> %a1221}1222declare <16 x i64> @llvm.lrint.v16i64.v16f16(<16 x half>)1223 1224define <32 x i64> @lrint_v32i64_v32f16(<32 x half> %x) nounwind {1225; BE-LABEL: lrint_v32i64_v32f16:1226; BE: # %bb.0:1227; BE-NEXT: mflr r01228; BE-NEXT: stdu r1, -864(r1)1229; BE-NEXT: std r0, 880(r1)1230; BE-NEXT: stfd f20, 768(r1) # 8-byte Folded Spill1231; BE-NEXT: fmr f20, f11232; BE-NEXT: fmr f1, f21233; BE-NEXT: std r14, 576(r1) # 8-byte Folded Spill1234; BE-NEXT: std r15, 584(r1) # 8-byte Folded Spill1235; BE-NEXT: std r16, 592(r1) # 8-byte Folded Spill1236; BE-NEXT: std r17, 600(r1) # 8-byte Folded Spill1237; BE-NEXT: std r18, 608(r1) # 8-byte Folded Spill1238; BE-NEXT: std r19, 616(r1) # 8-byte Folded Spill1239; BE-NEXT: std r20, 624(r1) # 8-byte Folded Spill1240; BE-NEXT: std r21, 632(r1) # 8-byte Folded Spill1241; BE-NEXT: std r22, 640(r1) # 8-byte Folded Spill1242; BE-NEXT: std r23, 648(r1) # 8-byte Folded Spill1243; BE-NEXT: std r24, 656(r1) # 8-byte Folded Spill1244; BE-NEXT: std r25, 664(r1) # 8-byte Folded Spill1245; BE-NEXT: std r26, 672(r1) # 8-byte Folded Spill1246; BE-NEXT: std r27, 680(r1) # 8-byte Folded Spill1247; BE-NEXT: std r28, 688(r1) # 8-byte Folded Spill1248; BE-NEXT: std r29, 696(r1) # 8-byte Folded Spill1249; BE-NEXT: std r30, 704(r1) # 8-byte Folded Spill1250; BE-NEXT: std r31, 712(r1) # 8-byte Folded Spill1251; BE-NEXT: stfd f14, 720(r1) # 8-byte Folded Spill1252; BE-NEXT: stfd f15, 728(r1) # 8-byte Folded Spill1253; BE-NEXT: stfd f16, 736(r1) # 8-byte Folded Spill1254; BE-NEXT: stfd f17, 744(r1) # 8-byte Folded Spill1255; BE-NEXT: stfd f18, 752(r1) # 8-byte Folded Spill1256; BE-NEXT: stfd f19, 760(r1) # 8-byte Folded Spill1257; BE-NEXT: stfd f21, 776(r1) # 8-byte Folded Spill1258; BE-NEXT: stfd f22, 784(r1) # 8-byte Folded Spill1259; BE-NEXT: stfd f23, 792(r1) # 8-byte Folded Spill1260; BE-NEXT: stfd f24, 800(r1) # 8-byte Folded Spill1261; BE-NEXT: stfd f25, 808(r1) # 8-byte Folded Spill1262; BE-NEXT: stfd f26, 816(r1) # 8-byte Folded Spill1263; BE-NEXT: stfd f27, 824(r1) # 8-byte Folded Spill1264; BE-NEXT: stfd f28, 832(r1) # 8-byte Folded Spill1265; BE-NEXT: stfd f29, 840(r1) # 8-byte Folded Spill1266; BE-NEXT: stfd f30, 848(r1) # 8-byte Folded Spill1267; BE-NEXT: stfd f31, 856(r1) # 8-byte Folded Spill1268; BE-NEXT: fmr f31, f131269; BE-NEXT: mr r30, r31270; BE-NEXT: fmr f29, f121271; BE-NEXT: fmr f30, f111272; BE-NEXT: fmr f28, f101273; BE-NEXT: fmr f27, f91274; BE-NEXT: fmr f26, f81275; BE-NEXT: fmr f25, f71276; BE-NEXT: fmr f24, f61277; BE-NEXT: fmr f23, f51278; BE-NEXT: fmr f22, f41279; BE-NEXT: fmr f21, f31280; BE-NEXT: bl __truncsfhf21281; BE-NEXT: nop1282; BE-NEXT: fmr f1, f201283; BE-NEXT: std r3, 304(r1) # 8-byte Folded Spill1284; BE-NEXT: bl __truncsfhf21285; BE-NEXT: nop1286; BE-NEXT: fmr f1, f221287; BE-NEXT: std r3, 296(r1) # 8-byte Folded Spill1288; BE-NEXT: bl __truncsfhf21289; BE-NEXT: nop1290; BE-NEXT: fmr f1, f211291; BE-NEXT: std r3, 280(r1) # 8-byte Folded Spill1292; BE-NEXT: bl __truncsfhf21293; BE-NEXT: nop1294; BE-NEXT: fmr f1, f241295; BE-NEXT: std r3, 264(r1) # 8-byte Folded Spill1296; BE-NEXT: bl __truncsfhf21297; BE-NEXT: nop1298; BE-NEXT: fmr f1, f231299; BE-NEXT: std r3, 248(r1) # 8-byte Folded Spill1300; BE-NEXT: bl __truncsfhf21301; BE-NEXT: nop1302; BE-NEXT: fmr f1, f261303; BE-NEXT: std r3, 232(r1) # 8-byte Folded Spill1304; BE-NEXT: bl __truncsfhf21305; BE-NEXT: nop1306; BE-NEXT: fmr f1, f251307; BE-NEXT: std r3, 216(r1) # 8-byte Folded Spill1308; BE-NEXT: bl __truncsfhf21309; BE-NEXT: nop1310; BE-NEXT: fmr f1, f281311; BE-NEXT: std r3, 200(r1) # 8-byte Folded Spill1312; BE-NEXT: bl __truncsfhf21313; BE-NEXT: nop1314; BE-NEXT: fmr f1, f271315; BE-NEXT: std r3, 184(r1) # 8-byte Folded Spill1316; BE-NEXT: bl __truncsfhf21317; BE-NEXT: nop1318; BE-NEXT: fmr f1, f291319; BE-NEXT: std r3, 168(r1) # 8-byte Folded Spill1320; BE-NEXT: bl __truncsfhf21321; BE-NEXT: nop1322; BE-NEXT: fmr f1, f301323; BE-NEXT: std r3, 152(r1) # 8-byte Folded Spill1324; BE-NEXT: bl __truncsfhf21325; BE-NEXT: nop1326; BE-NEXT: lfs f1, 1028(r1)1327; BE-NEXT: std r3, 136(r1) # 8-byte Folded Spill1328; BE-NEXT: bl __truncsfhf21329; BE-NEXT: nop1330; BE-NEXT: fmr f1, f311331; BE-NEXT: std r3, 120(r1) # 8-byte Folded Spill1332; BE-NEXT: bl __truncsfhf21333; BE-NEXT: nop1334; BE-NEXT: lfs f1, 1044(r1)1335; BE-NEXT: std r3, 112(r1) # 8-byte Folded Spill1336; BE-NEXT: bl __truncsfhf21337; BE-NEXT: nop1338; BE-NEXT: lfs f1, 1036(r1)1339; BE-NEXT: mr r15, r31340; BE-NEXT: bl __truncsfhf21341; BE-NEXT: nop1342; BE-NEXT: lfs f1, 1060(r1)1343; BE-NEXT: mr r14, r31344; BE-NEXT: bl __truncsfhf21345; BE-NEXT: nop1346; BE-NEXT: lfs f1, 1052(r1)1347; BE-NEXT: mr r31, r31348; BE-NEXT: bl __truncsfhf21349; BE-NEXT: nop1350; BE-NEXT: lfs f1, 1076(r1)1351; BE-NEXT: mr r29, r31352; BE-NEXT: bl __truncsfhf21353; BE-NEXT: nop1354; BE-NEXT: lfs f1, 1068(r1)1355; BE-NEXT: mr r28, r31356; BE-NEXT: bl __truncsfhf21357; BE-NEXT: nop1358; BE-NEXT: lfs f1, 1092(r1)1359; BE-NEXT: mr r27, r31360; BE-NEXT: bl __truncsfhf21361; BE-NEXT: nop1362; BE-NEXT: lfs f1, 1084(r1)1363; BE-NEXT: mr r26, r31364; BE-NEXT: bl __truncsfhf21365; BE-NEXT: nop1366; BE-NEXT: lfs f1, 1108(r1)1367; BE-NEXT: mr r25, r31368; BE-NEXT: bl __truncsfhf21369; BE-NEXT: nop1370; BE-NEXT: lfs f1, 1100(r1)1371; BE-NEXT: mr r24, r31372; BE-NEXT: bl __truncsfhf21373; BE-NEXT: nop1374; BE-NEXT: lfs f1, 1124(r1)1375; BE-NEXT: mr r23, r31376; BE-NEXT: bl __truncsfhf21377; BE-NEXT: nop1378; BE-NEXT: lfs f1, 1116(r1)1379; BE-NEXT: mr r22, r31380; BE-NEXT: bl __truncsfhf21381; BE-NEXT: nop1382; BE-NEXT: lfs f1, 1140(r1)1383; BE-NEXT: mr r21, r31384; BE-NEXT: bl __truncsfhf21385; BE-NEXT: nop1386; BE-NEXT: lfs f1, 1132(r1)1387; BE-NEXT: mr r20, r31388; BE-NEXT: bl __truncsfhf21389; BE-NEXT: nop1390; BE-NEXT: lfs f1, 1156(r1)1391; BE-NEXT: mr r19, r31392; BE-NEXT: bl __truncsfhf21393; BE-NEXT: nop1394; BE-NEXT: lfs f1, 1148(r1)1395; BE-NEXT: mr r18, r31396; BE-NEXT: bl __truncsfhf21397; BE-NEXT: nop1398; BE-NEXT: lfs f1, 1172(r1)1399; BE-NEXT: mr r17, r31400; BE-NEXT: bl __truncsfhf21401; BE-NEXT: nop1402; BE-NEXT: lfs f1, 1164(r1)1403; BE-NEXT: mr r16, r31404; BE-NEXT: bl __truncsfhf21405; BE-NEXT: nop1406; BE-NEXT: clrldi r3, r3, 481407; BE-NEXT: bl __extendhfsf21408; BE-NEXT: nop1409; BE-NEXT: clrldi r3, r16, 481410; BE-NEXT: stfs f1, 316(r1) # 4-byte Folded Spill1411; BE-NEXT: bl __extendhfsf21412; BE-NEXT: nop1413; BE-NEXT: clrldi r3, r17, 481414; BE-NEXT: stfs f1, 312(r1) # 4-byte Folded Spill1415; BE-NEXT: bl __extendhfsf21416; BE-NEXT: nop1417; BE-NEXT: clrldi r3, r18, 481418; BE-NEXT: stfs f1, 292(r1) # 4-byte Folded Spill1419; BE-NEXT: bl __extendhfsf21420; BE-NEXT: nop1421; BE-NEXT: clrldi r3, r19, 481422; BE-NEXT: stfs f1, 276(r1) # 4-byte Folded Spill1423; BE-NEXT: bl __extendhfsf21424; BE-NEXT: nop1425; BE-NEXT: clrldi r3, r20, 481426; BE-NEXT: stfs f1, 260(r1) # 4-byte Folded Spill1427; BE-NEXT: bl __extendhfsf21428; BE-NEXT: nop1429; BE-NEXT: clrldi r3, r21, 481430; BE-NEXT: stfs f1, 244(r1) # 4-byte Folded Spill1431; BE-NEXT: bl __extendhfsf21432; BE-NEXT: nop1433; BE-NEXT: clrldi r3, r22, 481434; BE-NEXT: stfs f1, 228(r1) # 4-byte Folded Spill1435; BE-NEXT: bl __extendhfsf21436; BE-NEXT: nop1437; BE-NEXT: clrldi r3, r23, 481438; BE-NEXT: stfs f1, 212(r1) # 4-byte Folded Spill1439; BE-NEXT: bl __extendhfsf21440; BE-NEXT: nop1441; BE-NEXT: clrldi r3, r24, 481442; BE-NEXT: stfs f1, 196(r1) # 4-byte Folded Spill1443; BE-NEXT: bl __extendhfsf21444; BE-NEXT: nop1445; BE-NEXT: clrldi r3, r25, 481446; BE-NEXT: stfs f1, 180(r1) # 4-byte Folded Spill1447; BE-NEXT: bl __extendhfsf21448; BE-NEXT: nop1449; BE-NEXT: clrldi r3, r26, 481450; BE-NEXT: stfs f1, 164(r1) # 4-byte Folded Spill1451; BE-NEXT: bl __extendhfsf21452; BE-NEXT: nop1453; BE-NEXT: clrldi r3, r27, 481454; BE-NEXT: stfs f1, 148(r1) # 4-byte Folded Spill1455; BE-NEXT: bl __extendhfsf21456; BE-NEXT: nop1457; BE-NEXT: clrldi r3, r28, 481458; BE-NEXT: stfs f1, 132(r1) # 4-byte Folded Spill1459; BE-NEXT: bl __extendhfsf21460; BE-NEXT: nop1461; BE-NEXT: clrldi r3, r29, 481462; BE-NEXT: fmr f18, f11463; BE-NEXT: bl __extendhfsf21464; BE-NEXT: nop1465; BE-NEXT: clrldi r3, r31, 481466; BE-NEXT: fmr f17, f11467; BE-NEXT: bl __extendhfsf21468; BE-NEXT: nop1469; BE-NEXT: clrldi r3, r14, 481470; BE-NEXT: fmr f16, f11471; BE-NEXT: bl __extendhfsf21472; BE-NEXT: nop1473; BE-NEXT: clrldi r3, r15, 481474; BE-NEXT: fmr f15, f11475; BE-NEXT: bl __extendhfsf21476; BE-NEXT: nop1477; BE-NEXT: ld r3, 112(r1) # 8-byte Folded Reload1478; BE-NEXT: fmr f14, f11479; BE-NEXT: clrldi r3, r3, 481480; BE-NEXT: bl __extendhfsf21481; BE-NEXT: nop1482; BE-NEXT: ld r3, 120(r1) # 8-byte Folded Reload1483; BE-NEXT: fmr f31, f11484; BE-NEXT: clrldi r3, r3, 481485; BE-NEXT: bl __extendhfsf21486; BE-NEXT: nop1487; BE-NEXT: ld r3, 136(r1) # 8-byte Folded Reload1488; BE-NEXT: fmr f30, f11489; BE-NEXT: clrldi r3, r3, 481490; BE-NEXT: bl __extendhfsf21491; BE-NEXT: nop1492; BE-NEXT: ld r3, 152(r1) # 8-byte Folded Reload1493; BE-NEXT: fmr f29, f11494; BE-NEXT: clrldi r3, r3, 481495; BE-NEXT: bl __extendhfsf21496; BE-NEXT: nop1497; BE-NEXT: ld r3, 168(r1) # 8-byte Folded Reload1498; BE-NEXT: fmr f28, f11499; BE-NEXT: clrldi r3, r3, 481500; BE-NEXT: bl __extendhfsf21501; BE-NEXT: nop1502; BE-NEXT: ld r3, 184(r1) # 8-byte Folded Reload1503; BE-NEXT: fmr f27, f11504; BE-NEXT: clrldi r3, r3, 481505; BE-NEXT: bl __extendhfsf21506; BE-NEXT: nop1507; BE-NEXT: ld r3, 200(r1) # 8-byte Folded Reload1508; BE-NEXT: fmr f26, f11509; BE-NEXT: clrldi r3, r3, 481510; BE-NEXT: bl __extendhfsf21511; BE-NEXT: nop1512; BE-NEXT: ld r3, 216(r1) # 8-byte Folded Reload1513; BE-NEXT: fmr f25, f11514; BE-NEXT: clrldi r3, r3, 481515; BE-NEXT: bl __extendhfsf21516; BE-NEXT: nop1517; BE-NEXT: ld r3, 232(r1) # 8-byte Folded Reload1518; BE-NEXT: fmr f24, f11519; BE-NEXT: clrldi r3, r3, 481520; BE-NEXT: bl __extendhfsf21521; BE-NEXT: nop1522; BE-NEXT: ld r3, 248(r1) # 8-byte Folded Reload1523; BE-NEXT: fmr f23, f11524; BE-NEXT: clrldi r3, r3, 481525; BE-NEXT: bl __extendhfsf21526; BE-NEXT: nop1527; BE-NEXT: ld r3, 264(r1) # 8-byte Folded Reload1528; BE-NEXT: fmr f22, f11529; BE-NEXT: clrldi r3, r3, 481530; BE-NEXT: bl __extendhfsf21531; BE-NEXT: nop1532; BE-NEXT: ld r3, 280(r1) # 8-byte Folded Reload1533; BE-NEXT: fmr f21, f11534; BE-NEXT: clrldi r3, r3, 481535; BE-NEXT: bl __extendhfsf21536; BE-NEXT: nop1537; BE-NEXT: ld r3, 296(r1) # 8-byte Folded Reload1538; BE-NEXT: fmr f20, f11539; BE-NEXT: clrldi r3, r3, 481540; BE-NEXT: bl __extendhfsf21541; BE-NEXT: nop1542; BE-NEXT: ld r3, 304(r1) # 8-byte Folded Reload1543; BE-NEXT: fmr f19, f11544; BE-NEXT: clrldi r3, r3, 481545; BE-NEXT: bl __extendhfsf21546; BE-NEXT: nop1547; BE-NEXT: bl lrintf1548; BE-NEXT: nop1549; BE-NEXT: fmr f1, f191550; BE-NEXT: std r3, 328(r1)1551; BE-NEXT: bl lrintf1552; BE-NEXT: nop1553; BE-NEXT: fmr f1, f201554; BE-NEXT: std r3, 320(r1)1555; BE-NEXT: bl lrintf1556; BE-NEXT: nop1557; BE-NEXT: fmr f1, f211558; BE-NEXT: std r3, 344(r1)1559; BE-NEXT: bl lrintf1560; BE-NEXT: nop1561; BE-NEXT: fmr f1, f221562; BE-NEXT: std r3, 336(r1)1563; BE-NEXT: bl lrintf1564; BE-NEXT: nop1565; BE-NEXT: fmr f1, f231566; BE-NEXT: std r3, 360(r1)1567; BE-NEXT: bl lrintf1568; BE-NEXT: nop1569; BE-NEXT: fmr f1, f241570; BE-NEXT: std r3, 352(r1)1571; BE-NEXT: bl lrintf1572; BE-NEXT: nop1573; BE-NEXT: fmr f1, f251574; BE-NEXT: std r3, 376(r1)1575; BE-NEXT: bl lrintf1576; BE-NEXT: nop1577; BE-NEXT: fmr f1, f261578; BE-NEXT: std r3, 368(r1)1579; BE-NEXT: bl lrintf1580; BE-NEXT: nop1581; BE-NEXT: fmr f1, f271582; BE-NEXT: std r3, 392(r1)1583; BE-NEXT: bl lrintf1584; BE-NEXT: nop1585; BE-NEXT: fmr f1, f281586; BE-NEXT: std r3, 384(r1)1587; BE-NEXT: bl lrintf1588; BE-NEXT: nop1589; BE-NEXT: fmr f1, f291590; BE-NEXT: std r3, 408(r1)1591; BE-NEXT: bl lrintf1592; BE-NEXT: nop1593; BE-NEXT: fmr f1, f301594; BE-NEXT: std r3, 400(r1)1595; BE-NEXT: bl lrintf1596; BE-NEXT: nop1597; BE-NEXT: fmr f1, f311598; BE-NEXT: std r3, 424(r1)1599; BE-NEXT: bl lrintf1600; BE-NEXT: nop1601; BE-NEXT: fmr f1, f141602; BE-NEXT: std r3, 416(r1)1603; BE-NEXT: bl lrintf1604; BE-NEXT: nop1605; BE-NEXT: fmr f1, f151606; BE-NEXT: std r3, 440(r1)1607; BE-NEXT: bl lrintf1608; BE-NEXT: nop1609; BE-NEXT: fmr f1, f161610; BE-NEXT: std r3, 432(r1)1611; BE-NEXT: bl lrintf1612; BE-NEXT: nop1613; BE-NEXT: fmr f1, f171614; BE-NEXT: std r3, 456(r1)1615; BE-NEXT: bl lrintf1616; BE-NEXT: nop1617; BE-NEXT: fmr f1, f181618; BE-NEXT: std r3, 448(r1)1619; BE-NEXT: bl lrintf1620; BE-NEXT: nop1621; BE-NEXT: lfs f1, 132(r1) # 4-byte Folded Reload1622; BE-NEXT: std r3, 472(r1)1623; BE-NEXT: bl lrintf1624; BE-NEXT: nop1625; BE-NEXT: lfs f1, 148(r1) # 4-byte Folded Reload1626; BE-NEXT: std r3, 464(r1)1627; BE-NEXT: bl lrintf1628; BE-NEXT: nop1629; BE-NEXT: lfs f1, 164(r1) # 4-byte Folded Reload1630; BE-NEXT: std r3, 488(r1)1631; BE-NEXT: bl lrintf1632; BE-NEXT: nop1633; BE-NEXT: lfs f1, 180(r1) # 4-byte Folded Reload1634; BE-NEXT: std r3, 480(r1)1635; BE-NEXT: bl lrintf1636; BE-NEXT: nop1637; BE-NEXT: lfs f1, 196(r1) # 4-byte Folded Reload1638; BE-NEXT: std r3, 504(r1)1639; BE-NEXT: bl lrintf1640; BE-NEXT: nop1641; BE-NEXT: lfs f1, 212(r1) # 4-byte Folded Reload1642; BE-NEXT: std r3, 496(r1)1643; BE-NEXT: bl lrintf1644; BE-NEXT: nop1645; BE-NEXT: lfs f1, 228(r1) # 4-byte Folded Reload1646; BE-NEXT: std r3, 520(r1)1647; BE-NEXT: bl lrintf1648; BE-NEXT: nop1649; BE-NEXT: lfs f1, 244(r1) # 4-byte Folded Reload1650; BE-NEXT: std r3, 512(r1)1651; BE-NEXT: bl lrintf1652; BE-NEXT: nop1653; BE-NEXT: lfs f1, 260(r1) # 4-byte Folded Reload1654; BE-NEXT: std r3, 536(r1)1655; BE-NEXT: bl lrintf1656; BE-NEXT: nop1657; BE-NEXT: lfs f1, 276(r1) # 4-byte Folded Reload1658; BE-NEXT: std r3, 528(r1)1659; BE-NEXT: bl lrintf1660; BE-NEXT: nop1661; BE-NEXT: lfs f1, 292(r1) # 4-byte Folded Reload1662; BE-NEXT: std r3, 552(r1)1663; BE-NEXT: bl lrintf1664; BE-NEXT: nop1665; BE-NEXT: lfs f1, 312(r1) # 4-byte Folded Reload1666; BE-NEXT: std r3, 544(r1)1667; BE-NEXT: bl lrintf1668; BE-NEXT: nop1669; BE-NEXT: lfs f1, 316(r1) # 4-byte Folded Reload1670; BE-NEXT: std r3, 568(r1)1671; BE-NEXT: bl lrintf1672; BE-NEXT: nop1673; BE-NEXT: std r3, 560(r1)1674; BE-NEXT: addi r3, r1, 3201675; BE-NEXT: lxvd2x vs0, 0, r31676; BE-NEXT: addi r3, r1, 3361677; BE-NEXT: lxvd2x vs1, 0, r31678; BE-NEXT: addi r3, r1, 3521679; BE-NEXT: lxvd2x vs2, 0, r31680; BE-NEXT: addi r3, r1, 3681681; BE-NEXT: lxvd2x vs3, 0, r31682; BE-NEXT: addi r3, r1, 3841683; BE-NEXT: lxvd2x vs4, 0, r31684; BE-NEXT: addi r3, r1, 4001685; BE-NEXT: lxvd2x vs5, 0, r31686; BE-NEXT: addi r3, r1, 4161687; BE-NEXT: lxvd2x vs6, 0, r31688; BE-NEXT: addi r3, r1, 4321689; BE-NEXT: lxvd2x vs7, 0, r31690; BE-NEXT: addi r3, r1, 4481691; BE-NEXT: lxvd2x vs8, 0, r31692; BE-NEXT: addi r3, r1, 4641693; BE-NEXT: lxvd2x vs9, 0, r31694; BE-NEXT: addi r3, r1, 4801695; BE-NEXT: lxvd2x vs10, 0, r31696; BE-NEXT: addi r3, r1, 4961697; BE-NEXT: lxvd2x vs11, 0, r31698; BE-NEXT: addi r3, r1, 5121699; BE-NEXT: lxvd2x vs12, 0, r31700; BE-NEXT: addi r3, r1, 5281701; BE-NEXT: lxvd2x vs13, 0, r31702; BE-NEXT: addi r3, r1, 5441703; BE-NEXT: lxvd2x v2, 0, r31704; BE-NEXT: addi r3, r1, 5601705; BE-NEXT: lxvd2x v3, 0, r31706; BE-NEXT: li r3, 2401707; BE-NEXT: stxvd2x v3, r30, r31708; BE-NEXT: li r3, 2241709; BE-NEXT: stxvd2x v2, r30, r31710; BE-NEXT: li r3, 2081711; BE-NEXT: stxvd2x vs13, r30, r31712; BE-NEXT: li r3, 1921713; BE-NEXT: stxvd2x vs12, r30, r31714; BE-NEXT: li r3, 1761715; BE-NEXT: stxvd2x vs11, r30, r31716; BE-NEXT: li r3, 1601717; BE-NEXT: stxvd2x vs10, r30, r31718; BE-NEXT: li r3, 1441719; BE-NEXT: stxvd2x vs9, r30, r31720; BE-NEXT: li r3, 1281721; BE-NEXT: stxvd2x vs8, r30, r31722; BE-NEXT: li r3, 1121723; BE-NEXT: stxvd2x vs7, r30, r31724; BE-NEXT: li r3, 961725; BE-NEXT: stxvd2x vs6, r30, r31726; BE-NEXT: li r3, 801727; BE-NEXT: stxvd2x vs5, r30, r31728; BE-NEXT: li r3, 641729; BE-NEXT: stxvd2x vs4, r30, r31730; BE-NEXT: li r3, 481731; BE-NEXT: stxvd2x vs3, r30, r31732; BE-NEXT: li r3, 321733; BE-NEXT: stxvd2x vs2, r30, r31734; BE-NEXT: li r3, 161735; BE-NEXT: stxvd2x vs1, r30, r31736; BE-NEXT: stxvd2x vs0, 0, r301737; BE-NEXT: lfd f31, 856(r1) # 8-byte Folded Reload1738; BE-NEXT: lfd f30, 848(r1) # 8-byte Folded Reload1739; BE-NEXT: lfd f29, 840(r1) # 8-byte Folded Reload1740; BE-NEXT: lfd f28, 832(r1) # 8-byte Folded Reload1741; BE-NEXT: lfd f27, 824(r1) # 8-byte Folded Reload1742; BE-NEXT: lfd f26, 816(r1) # 8-byte Folded Reload1743; BE-NEXT: lfd f25, 808(r1) # 8-byte Folded Reload1744; BE-NEXT: lfd f24, 800(r1) # 8-byte Folded Reload1745; BE-NEXT: lfd f23, 792(r1) # 8-byte Folded Reload1746; BE-NEXT: lfd f22, 784(r1) # 8-byte Folded Reload1747; BE-NEXT: lfd f21, 776(r1) # 8-byte Folded Reload1748; BE-NEXT: lfd f20, 768(r1) # 8-byte Folded Reload1749; BE-NEXT: lfd f19, 760(r1) # 8-byte Folded Reload1750; BE-NEXT: lfd f18, 752(r1) # 8-byte Folded Reload1751; BE-NEXT: lfd f17, 744(r1) # 8-byte Folded Reload1752; BE-NEXT: lfd f16, 736(r1) # 8-byte Folded Reload1753; BE-NEXT: lfd f15, 728(r1) # 8-byte Folded Reload1754; BE-NEXT: lfd f14, 720(r1) # 8-byte Folded Reload1755; BE-NEXT: ld r31, 712(r1) # 8-byte Folded Reload1756; BE-NEXT: ld r30, 704(r1) # 8-byte Folded Reload1757; BE-NEXT: ld r29, 696(r1) # 8-byte Folded Reload1758; BE-NEXT: ld r28, 688(r1) # 8-byte Folded Reload1759; BE-NEXT: ld r27, 680(r1) # 8-byte Folded Reload1760; BE-NEXT: ld r26, 672(r1) # 8-byte Folded Reload1761; BE-NEXT: ld r25, 664(r1) # 8-byte Folded Reload1762; BE-NEXT: ld r24, 656(r1) # 8-byte Folded Reload1763; BE-NEXT: ld r23, 648(r1) # 8-byte Folded Reload1764; BE-NEXT: ld r22, 640(r1) # 8-byte Folded Reload1765; BE-NEXT: ld r21, 632(r1) # 8-byte Folded Reload1766; BE-NEXT: ld r20, 624(r1) # 8-byte Folded Reload1767; BE-NEXT: ld r19, 616(r1) # 8-byte Folded Reload1768; BE-NEXT: ld r18, 608(r1) # 8-byte Folded Reload1769; BE-NEXT: ld r17, 600(r1) # 8-byte Folded Reload1770; BE-NEXT: ld r16, 592(r1) # 8-byte Folded Reload1771; BE-NEXT: ld r15, 584(r1) # 8-byte Folded Reload1772; BE-NEXT: ld r14, 576(r1) # 8-byte Folded Reload1773; BE-NEXT: addi r1, r1, 8641774; BE-NEXT: ld r0, 16(r1)1775; BE-NEXT: mtlr r01776; BE-NEXT: blr1777;1778; CHECK-LABEL: lrint_v32i64_v32f16:1779; CHECK: # %bb.0:1780; CHECK-NEXT: mflr r01781; CHECK-NEXT: stdu r1, -688(r1)1782; CHECK-NEXT: li r4, 2081783; CHECK-NEXT: std r0, 704(r1)1784; CHECK-NEXT: std r14, 400(r1) # 8-byte Folded Spill1785; CHECK-NEXT: std r15, 408(r1) # 8-byte Folded Spill1786; CHECK-NEXT: std r16, 416(r1) # 8-byte Folded Spill1787; CHECK-NEXT: std r17, 424(r1) # 8-byte Folded Spill1788; CHECK-NEXT: std r18, 432(r1) # 8-byte Folded Spill1789; CHECK-NEXT: std r19, 440(r1) # 8-byte Folded Spill1790; CHECK-NEXT: stxvd2x v20, r1, r4 # 16-byte Folded Spill1791; CHECK-NEXT: li r4, 2241792; CHECK-NEXT: std r20, 448(r1) # 8-byte Folded Spill1793; CHECK-NEXT: std r21, 456(r1) # 8-byte Folded Spill1794; CHECK-NEXT: std r22, 464(r1) # 8-byte Folded Spill1795; CHECK-NEXT: std r23, 472(r1) # 8-byte Folded Spill1796; CHECK-NEXT: std r24, 480(r1) # 8-byte Folded Spill1797; CHECK-NEXT: std r25, 488(r1) # 8-byte Folded Spill1798; CHECK-NEXT: stxvd2x v21, r1, r4 # 16-byte Folded Spill1799; CHECK-NEXT: li r4, 2401800; CHECK-NEXT: std r26, 496(r1) # 8-byte Folded Spill1801; CHECK-NEXT: std r27, 504(r1) # 8-byte Folded Spill1802; CHECK-NEXT: std r28, 512(r1) # 8-byte Folded Spill1803; CHECK-NEXT: std r29, 520(r1) # 8-byte Folded Spill1804; CHECK-NEXT: std r30, 528(r1) # 8-byte Folded Spill1805; CHECK-NEXT: mr r30, r31806; CHECK-NEXT: stxvd2x v22, r1, r4 # 16-byte Folded Spill1807; CHECK-NEXT: li r4, 2561808; CHECK-NEXT: std r31, 536(r1) # 8-byte Folded Spill1809; CHECK-NEXT: stfd f14, 544(r1) # 8-byte Folded Spill1810; CHECK-NEXT: stfd f15, 552(r1) # 8-byte Folded Spill1811; CHECK-NEXT: stfd f16, 560(r1) # 8-byte Folded Spill1812; CHECK-NEXT: stfd f17, 568(r1) # 8-byte Folded Spill1813; CHECK-NEXT: stfd f18, 576(r1) # 8-byte Folded Spill1814; CHECK-NEXT: stxvd2x v23, r1, r4 # 16-byte Folded Spill1815; CHECK-NEXT: li r4, 2721816; CHECK-NEXT: stfd f19, 584(r1) # 8-byte Folded Spill1817; CHECK-NEXT: stfd f20, 592(r1) # 8-byte Folded Spill1818; CHECK-NEXT: fmr f20, f21819; CHECK-NEXT: stfd f21, 600(r1) # 8-byte Folded Spill1820; CHECK-NEXT: fmr f21, f31821; CHECK-NEXT: stfd f22, 608(r1) # 8-byte Folded Spill1822; CHECK-NEXT: fmr f22, f41823; CHECK-NEXT: stxvd2x v24, r1, r4 # 16-byte Folded Spill1824; CHECK-NEXT: li r4, 2881825; CHECK-NEXT: stfd f23, 616(r1) # 8-byte Folded Spill1826; CHECK-NEXT: fmr f23, f51827; CHECK-NEXT: stfd f24, 624(r1) # 8-byte Folded Spill1828; CHECK-NEXT: fmr f24, f61829; CHECK-NEXT: stfd f25, 632(r1) # 8-byte Folded Spill1830; CHECK-NEXT: fmr f25, f71831; CHECK-NEXT: stxvd2x v25, r1, r4 # 16-byte Folded Spill1832; CHECK-NEXT: li r4, 3041833; CHECK-NEXT: stfd f26, 640(r1) # 8-byte Folded Spill1834; CHECK-NEXT: fmr f26, f81835; CHECK-NEXT: stfd f27, 648(r1) # 8-byte Folded Spill1836; CHECK-NEXT: fmr f27, f91837; CHECK-NEXT: stfd f28, 656(r1) # 8-byte Folded Spill1838; CHECK-NEXT: fmr f28, f101839; CHECK-NEXT: stxvd2x v26, r1, r4 # 16-byte Folded Spill1840; CHECK-NEXT: li r4, 3201841; CHECK-NEXT: stfd f29, 664(r1) # 8-byte Folded Spill1842; CHECK-NEXT: fmr f29, f111843; CHECK-NEXT: stfd f30, 672(r1) # 8-byte Folded Spill1844; CHECK-NEXT: fmr f30, f121845; CHECK-NEXT: stfd f31, 680(r1) # 8-byte Folded Spill1846; CHECK-NEXT: fmr f31, f131847; CHECK-NEXT: stxvd2x v27, r1, r4 # 16-byte Folded Spill1848; CHECK-NEXT: li r4, 3361849; CHECK-NEXT: stxvd2x v28, r1, r4 # 16-byte Folded Spill1850; CHECK-NEXT: li r4, 3521851; CHECK-NEXT: stxvd2x v29, r1, r4 # 16-byte Folded Spill1852; CHECK-NEXT: li r4, 3681853; CHECK-NEXT: stxvd2x v30, r1, r4 # 16-byte Folded Spill1854; CHECK-NEXT: li r4, 3841855; CHECK-NEXT: stxvd2x v31, r1, r4 # 16-byte Folded Spill1856; CHECK-NEXT: bl __truncsfhf21857; CHECK-NEXT: nop1858; CHECK-NEXT: fmr f1, f201859; CHECK-NEXT: std r3, 176(r1) # 8-byte Folded Spill1860; CHECK-NEXT: bl __truncsfhf21861; CHECK-NEXT: nop1862; CHECK-NEXT: fmr f1, f211863; CHECK-NEXT: std r3, 160(r1) # 8-byte Folded Spill1864; CHECK-NEXT: bl __truncsfhf21865; CHECK-NEXT: nop1866; CHECK-NEXT: fmr f1, f221867; CHECK-NEXT: std r3, 144(r1) # 8-byte Folded Spill1868; CHECK-NEXT: bl __truncsfhf21869; CHECK-NEXT: nop1870; CHECK-NEXT: fmr f1, f231871; CHECK-NEXT: std r3, 128(r1) # 8-byte Folded Spill1872; CHECK-NEXT: bl __truncsfhf21873; CHECK-NEXT: nop1874; CHECK-NEXT: fmr f1, f241875; CHECK-NEXT: std r3, 120(r1) # 8-byte Folded Spill1876; CHECK-NEXT: bl __truncsfhf21877; CHECK-NEXT: nop1878; CHECK-NEXT: fmr f1, f251879; CHECK-NEXT: std r3, 112(r1) # 8-byte Folded Spill1880; CHECK-NEXT: bl __truncsfhf21881; CHECK-NEXT: nop1882; CHECK-NEXT: fmr f1, f261883; CHECK-NEXT: std r3, 104(r1) # 8-byte Folded Spill1884; CHECK-NEXT: bl __truncsfhf21885; CHECK-NEXT: nop1886; CHECK-NEXT: fmr f1, f271887; CHECK-NEXT: std r3, 96(r1) # 8-byte Folded Spill1888; CHECK-NEXT: bl __truncsfhf21889; CHECK-NEXT: nop1890; CHECK-NEXT: fmr f1, f281891; CHECK-NEXT: std r3, 88(r1) # 8-byte Folded Spill1892; CHECK-NEXT: bl __truncsfhf21893; CHECK-NEXT: nop1894; CHECK-NEXT: fmr f1, f291895; CHECK-NEXT: std r3, 80(r1) # 8-byte Folded Spill1896; CHECK-NEXT: bl __truncsfhf21897; CHECK-NEXT: nop1898; CHECK-NEXT: fmr f1, f301899; CHECK-NEXT: std r3, 72(r1) # 8-byte Folded Spill1900; CHECK-NEXT: bl __truncsfhf21901; CHECK-NEXT: nop1902; CHECK-NEXT: fmr f1, f311903; CHECK-NEXT: std r3, 64(r1) # 8-byte Folded Spill1904; CHECK-NEXT: bl __truncsfhf21905; CHECK-NEXT: nop1906; CHECK-NEXT: lfs f1, 832(r1)1907; CHECK-NEXT: std r3, 56(r1) # 8-byte Folded Spill1908; CHECK-NEXT: bl __truncsfhf21909; CHECK-NEXT: nop1910; CHECK-NEXT: lfs f1, 840(r1)1911; CHECK-NEXT: std r3, 48(r1) # 8-byte Folded Spill1912; CHECK-NEXT: bl __truncsfhf21913; CHECK-NEXT: nop1914; CHECK-NEXT: lfs f1, 848(r1)1915; CHECK-NEXT: mr r15, r31916; CHECK-NEXT: bl __truncsfhf21917; CHECK-NEXT: nop1918; CHECK-NEXT: lfs f1, 856(r1)1919; CHECK-NEXT: mr r14, r31920; CHECK-NEXT: bl __truncsfhf21921; CHECK-NEXT: nop1922; CHECK-NEXT: lfs f1, 864(r1)1923; CHECK-NEXT: mr r31, r31924; CHECK-NEXT: bl __truncsfhf21925; CHECK-NEXT: nop1926; CHECK-NEXT: lfs f1, 872(r1)1927; CHECK-NEXT: mr r29, r31928; CHECK-NEXT: bl __truncsfhf21929; CHECK-NEXT: nop1930; CHECK-NEXT: lfs f1, 880(r1)1931; CHECK-NEXT: mr r28, r31932; CHECK-NEXT: bl __truncsfhf21933; CHECK-NEXT: nop1934; CHECK-NEXT: lfs f1, 888(r1)1935; CHECK-NEXT: mr r27, r31936; CHECK-NEXT: bl __truncsfhf21937; CHECK-NEXT: nop1938; CHECK-NEXT: lfs f1, 896(r1)1939; CHECK-NEXT: mr r26, r31940; CHECK-NEXT: bl __truncsfhf21941; CHECK-NEXT: nop1942; CHECK-NEXT: lfs f1, 904(r1)1943; CHECK-NEXT: mr r25, r31944; CHECK-NEXT: bl __truncsfhf21945; CHECK-NEXT: nop1946; CHECK-NEXT: lfs f1, 912(r1)1947; CHECK-NEXT: mr r24, r31948; CHECK-NEXT: bl __truncsfhf21949; CHECK-NEXT: nop1950; CHECK-NEXT: lfs f1, 920(r1)1951; CHECK-NEXT: mr r23, r31952; CHECK-NEXT: bl __truncsfhf21953; CHECK-NEXT: nop1954; CHECK-NEXT: lfs f1, 928(r1)1955; CHECK-NEXT: mr r22, r31956; CHECK-NEXT: bl __truncsfhf21957; CHECK-NEXT: nop1958; CHECK-NEXT: lfs f1, 936(r1)1959; CHECK-NEXT: mr r21, r31960; CHECK-NEXT: bl __truncsfhf21961; CHECK-NEXT: nop1962; CHECK-NEXT: lfs f1, 944(r1)1963; CHECK-NEXT: mr r20, r31964; CHECK-NEXT: bl __truncsfhf21965; CHECK-NEXT: nop1966; CHECK-NEXT: lfs f1, 952(r1)1967; CHECK-NEXT: mr r19, r31968; CHECK-NEXT: bl __truncsfhf21969; CHECK-NEXT: nop1970; CHECK-NEXT: lfs f1, 960(r1)1971; CHECK-NEXT: mr r18, r31972; CHECK-NEXT: bl __truncsfhf21973; CHECK-NEXT: nop1974; CHECK-NEXT: lfs f1, 968(r1)1975; CHECK-NEXT: mr r17, r31976; CHECK-NEXT: bl __truncsfhf21977; CHECK-NEXT: nop1978; CHECK-NEXT: lfs f1, 976(r1)1979; CHECK-NEXT: mr r16, r31980; CHECK-NEXT: bl __truncsfhf21981; CHECK-NEXT: nop1982; CHECK-NEXT: clrldi r3, r3, 481983; CHECK-NEXT: bl __extendhfsf21984; CHECK-NEXT: nop1985; CHECK-NEXT: li r3, 2041986; CHECK-NEXT: stxsspx f1, r1, r3 # 4-byte Folded Spill1987; CHECK-NEXT: clrldi r3, r16, 481988; CHECK-NEXT: bl __extendhfsf21989; CHECK-NEXT: nop1990; CHECK-NEXT: li r3, 2001991; CHECK-NEXT: stxsspx f1, r1, r3 # 4-byte Folded Spill1992; CHECK-NEXT: clrldi r3, r17, 481993; CHECK-NEXT: bl __extendhfsf21994; CHECK-NEXT: nop1995; CHECK-NEXT: clrldi r3, r18, 481996; CHECK-NEXT: fmr f29, f11997; CHECK-NEXT: bl __extendhfsf21998; CHECK-NEXT: nop1999; CHECK-NEXT: clrldi r3, r19, 482000; CHECK-NEXT: fmr f28, f12001; CHECK-NEXT: bl __extendhfsf22002; CHECK-NEXT: nop2003; CHECK-NEXT: clrldi r3, r20, 482004; CHECK-NEXT: fmr f27, f12005; CHECK-NEXT: bl __extendhfsf22006; CHECK-NEXT: nop2007; CHECK-NEXT: clrldi r3, r21, 482008; CHECK-NEXT: fmr f26, f12009; CHECK-NEXT: bl __extendhfsf22010; CHECK-NEXT: nop2011; CHECK-NEXT: clrldi r3, r22, 482012; CHECK-NEXT: fmr f25, f12013; CHECK-NEXT: bl __extendhfsf22014; CHECK-NEXT: nop2015; CHECK-NEXT: clrldi r3, r23, 482016; CHECK-NEXT: fmr f24, f12017; CHECK-NEXT: bl __extendhfsf22018; CHECK-NEXT: nop2019; CHECK-NEXT: clrldi r3, r24, 482020; CHECK-NEXT: fmr f23, f12021; CHECK-NEXT: bl __extendhfsf22022; CHECK-NEXT: nop2023; CHECK-NEXT: clrldi r3, r25, 482024; CHECK-NEXT: fmr f22, f12025; CHECK-NEXT: bl __extendhfsf22026; CHECK-NEXT: nop2027; CHECK-NEXT: clrldi r3, r26, 482028; CHECK-NEXT: fmr f21, f12029; CHECK-NEXT: bl __extendhfsf22030; CHECK-NEXT: nop2031; CHECK-NEXT: clrldi r3, r27, 482032; CHECK-NEXT: fmr f20, f12033; CHECK-NEXT: bl __extendhfsf22034; CHECK-NEXT: nop2035; CHECK-NEXT: clrldi r3, r28, 482036; CHECK-NEXT: fmr f19, f12037; CHECK-NEXT: bl __extendhfsf22038; CHECK-NEXT: nop2039; CHECK-NEXT: clrldi r3, r29, 482040; CHECK-NEXT: fmr f18, f12041; CHECK-NEXT: bl __extendhfsf22042; CHECK-NEXT: nop2043; CHECK-NEXT: clrldi r3, r31, 482044; CHECK-NEXT: fmr f17, f12045; CHECK-NEXT: bl __extendhfsf22046; CHECK-NEXT: nop2047; CHECK-NEXT: clrldi r3, r14, 482048; CHECK-NEXT: fmr f16, f12049; CHECK-NEXT: bl __extendhfsf22050; CHECK-NEXT: nop2051; CHECK-NEXT: clrldi r3, r15, 482052; CHECK-NEXT: fmr f15, f12053; CHECK-NEXT: bl __extendhfsf22054; CHECK-NEXT: nop2055; CHECK-NEXT: ld r3, 48(r1) # 8-byte Folded Reload2056; CHECK-NEXT: fmr f14, f12057; CHECK-NEXT: clrldi r3, r3, 482058; CHECK-NEXT: bl __extendhfsf22059; CHECK-NEXT: nop2060; CHECK-NEXT: ld r3, 56(r1) # 8-byte Folded Reload2061; CHECK-NEXT: fmr f30, f12062; CHECK-NEXT: clrldi r3, r3, 482063; CHECK-NEXT: bl __extendhfsf22064; CHECK-NEXT: nop2065; CHECK-NEXT: ld r3, 64(r1) # 8-byte Folded Reload2066; CHECK-NEXT: xxlor v30, f1, f12067; CHECK-NEXT: clrldi r3, r3, 482068; CHECK-NEXT: bl __extendhfsf22069; CHECK-NEXT: nop2070; CHECK-NEXT: ld r3, 72(r1) # 8-byte Folded Reload2071; CHECK-NEXT: xxlor v29, f1, f12072; CHECK-NEXT: clrldi r3, r3, 482073; CHECK-NEXT: bl __extendhfsf22074; CHECK-NEXT: nop2075; CHECK-NEXT: ld r3, 80(r1) # 8-byte Folded Reload2076; CHECK-NEXT: xxlor v28, f1, f12077; CHECK-NEXT: clrldi r3, r3, 482078; CHECK-NEXT: bl __extendhfsf22079; CHECK-NEXT: nop2080; CHECK-NEXT: ld r3, 88(r1) # 8-byte Folded Reload2081; CHECK-NEXT: xxlor v27, f1, f12082; CHECK-NEXT: clrldi r3, r3, 482083; CHECK-NEXT: bl __extendhfsf22084; CHECK-NEXT: nop2085; CHECK-NEXT: ld r3, 96(r1) # 8-byte Folded Reload2086; CHECK-NEXT: xxlor v26, f1, f12087; CHECK-NEXT: clrldi r3, r3, 482088; CHECK-NEXT: bl __extendhfsf22089; CHECK-NEXT: nop2090; CHECK-NEXT: ld r3, 104(r1) # 8-byte Folded Reload2091; CHECK-NEXT: xxlor v25, f1, f12092; CHECK-NEXT: clrldi r3, r3, 482093; CHECK-NEXT: bl __extendhfsf22094; CHECK-NEXT: nop2095; CHECK-NEXT: ld r3, 112(r1) # 8-byte Folded Reload2096; CHECK-NEXT: xxlor v24, f1, f12097; CHECK-NEXT: clrldi r3, r3, 482098; CHECK-NEXT: bl __extendhfsf22099; CHECK-NEXT: nop2100; CHECK-NEXT: ld r3, 120(r1) # 8-byte Folded Reload2101; CHECK-NEXT: xxlor v23, f1, f12102; CHECK-NEXT: clrldi r3, r3, 482103; CHECK-NEXT: bl __extendhfsf22104; CHECK-NEXT: nop2105; CHECK-NEXT: ld r3, 128(r1) # 8-byte Folded Reload2106; CHECK-NEXT: xxlor v22, f1, f12107; CHECK-NEXT: clrldi r3, r3, 482108; CHECK-NEXT: bl __extendhfsf22109; CHECK-NEXT: nop2110; CHECK-NEXT: ld r3, 144(r1) # 8-byte Folded Reload2111; CHECK-NEXT: xxlor v21, f1, f12112; CHECK-NEXT: clrldi r3, r3, 482113; CHECK-NEXT: bl __extendhfsf22114; CHECK-NEXT: nop2115; CHECK-NEXT: ld r3, 160(r1) # 8-byte Folded Reload2116; CHECK-NEXT: xxlor v20, f1, f12117; CHECK-NEXT: clrldi r3, r3, 482118; CHECK-NEXT: bl __extendhfsf22119; CHECK-NEXT: nop2120; CHECK-NEXT: ld r3, 176(r1) # 8-byte Folded Reload2121; CHECK-NEXT: fmr f31, f12122; CHECK-NEXT: clrldi r3, r3, 482123; CHECK-NEXT: bl __extendhfsf22124; CHECK-NEXT: nop2125; CHECK-NEXT: bl lrintf2126; CHECK-NEXT: nop2127; CHECK-NEXT: fmr f1, f312128; CHECK-NEXT: mtvsrd v31, r32129; CHECK-NEXT: bl lrintf2130; CHECK-NEXT: nop2131; CHECK-NEXT: mtfprd f0, r32132; CHECK-NEXT: li r3, 1762133; CHECK-NEXT: xxlor f1, v20, v202134; CHECK-NEXT: xxmrghd vs0, vs0, v312135; CHECK-NEXT: stxvd2x vs0, r1, r3 # 16-byte Folded Spill2136; CHECK-NEXT: bl lrintf2137; CHECK-NEXT: nop2138; CHECK-NEXT: xxlor f1, v21, v212139; CHECK-NEXT: mtvsrd v31, r32140; CHECK-NEXT: bl lrintf2141; CHECK-NEXT: nop2142; CHECK-NEXT: mtfprd f0, r32143; CHECK-NEXT: li r3, 1602144; CHECK-NEXT: xxlor f1, v22, v222145; CHECK-NEXT: xxmrghd vs0, vs0, v312146; CHECK-NEXT: stxvd2x vs0, r1, r3 # 16-byte Folded Spill2147; CHECK-NEXT: bl lrintf2148; CHECK-NEXT: nop2149; CHECK-NEXT: xxlor f1, v23, v232150; CHECK-NEXT: mtvsrd v31, r32151; CHECK-NEXT: bl lrintf2152; CHECK-NEXT: nop2153; CHECK-NEXT: mtfprd f0, r32154; CHECK-NEXT: li r3, 1442155; CHECK-NEXT: xxlor f1, v24, v242156; CHECK-NEXT: xxmrghd vs0, vs0, v312157; CHECK-NEXT: stxvd2x vs0, r1, r3 # 16-byte Folded Spill2158; CHECK-NEXT: bl lrintf2159; CHECK-NEXT: nop2160; CHECK-NEXT: xxlor f1, v25, v252161; CHECK-NEXT: mtvsrd v31, r32162; CHECK-NEXT: bl lrintf2163; CHECK-NEXT: nop2164; CHECK-NEXT: mtfprd f0, r32165; CHECK-NEXT: li r3, 1282166; CHECK-NEXT: xxlor f1, v26, v262167; CHECK-NEXT: xxmrghd vs0, vs0, v312168; CHECK-NEXT: stxvd2x vs0, r1, r3 # 16-byte Folded Spill2169; CHECK-NEXT: bl lrintf2170; CHECK-NEXT: nop2171; CHECK-NEXT: xxlor f1, v27, v272172; CHECK-NEXT: mtvsrd v31, r32173; CHECK-NEXT: bl lrintf2174; CHECK-NEXT: nop2175; CHECK-NEXT: mtfprd f0, r32176; CHECK-NEXT: xxlor f1, v28, v282177; CHECK-NEXT: xxmrghd v27, vs0, v312178; CHECK-NEXT: bl lrintf2179; CHECK-NEXT: nop2180; CHECK-NEXT: xxlor f1, v29, v292181; CHECK-NEXT: mtvsrd v31, r32182; CHECK-NEXT: bl lrintf2183; CHECK-NEXT: nop2184; CHECK-NEXT: mtfprd f0, r32185; CHECK-NEXT: xxlor f1, v30, v302186; CHECK-NEXT: xxmrghd v29, vs0, v312187; CHECK-NEXT: bl lrintf2188; CHECK-NEXT: nop2189; CHECK-NEXT: fmr f1, f302190; CHECK-NEXT: mtvsrd v31, r32191; CHECK-NEXT: bl lrintf2192; CHECK-NEXT: nop2193; CHECK-NEXT: fmr f1, f142194; CHECK-NEXT: mtfprd f0, r32195; CHECK-NEXT: xxmrghd v31, vs0, v312196; CHECK-NEXT: bl lrintf2197; CHECK-NEXT: nop2198; CHECK-NEXT: fmr f1, f152199; CHECK-NEXT: mtvsrd v30, r32200; CHECK-NEXT: bl lrintf2201; CHECK-NEXT: nop2202; CHECK-NEXT: fmr f1, f162203; CHECK-NEXT: mtfprd f0, r32204; CHECK-NEXT: xxmrghd v30, vs0, v302205; CHECK-NEXT: bl lrintf2206; CHECK-NEXT: nop2207; CHECK-NEXT: fmr f1, f172208; CHECK-NEXT: mtvsrd v28, r32209; CHECK-NEXT: bl lrintf2210; CHECK-NEXT: nop2211; CHECK-NEXT: fmr f1, f182212; CHECK-NEXT: mtfprd f0, r32213; CHECK-NEXT: xxmrghd v28, vs0, v282214; CHECK-NEXT: bl lrintf2215; CHECK-NEXT: nop2216; CHECK-NEXT: fmr f1, f192217; CHECK-NEXT: mtvsrd v26, r32218; CHECK-NEXT: bl lrintf2219; CHECK-NEXT: nop2220; CHECK-NEXT: fmr f1, f202221; CHECK-NEXT: mtfprd f0, r32222; CHECK-NEXT: xxmrghd v26, vs0, v262223; CHECK-NEXT: bl lrintf2224; CHECK-NEXT: nop2225; CHECK-NEXT: fmr f1, f212226; CHECK-NEXT: mtvsrd v24, r32227; CHECK-NEXT: bl lrintf2228; CHECK-NEXT: nop2229; CHECK-NEXT: fmr f1, f222230; CHECK-NEXT: mtfprd f0, r32231; CHECK-NEXT: xxmrghd v24, vs0, v242232; CHECK-NEXT: bl lrintf2233; CHECK-NEXT: nop2234; CHECK-NEXT: fmr f1, f232235; CHECK-NEXT: mtvsrd v22, r32236; CHECK-NEXT: bl lrintf2237; CHECK-NEXT: nop2238; CHECK-NEXT: fmr f1, f242239; CHECK-NEXT: mtfprd f0, r32240; CHECK-NEXT: xxmrghd v22, vs0, v222241; CHECK-NEXT: bl lrintf2242; CHECK-NEXT: nop2243; CHECK-NEXT: fmr f1, f252244; CHECK-NEXT: mtvsrd v20, r32245; CHECK-NEXT: bl lrintf2246; CHECK-NEXT: nop2247; CHECK-NEXT: fmr f1, f262248; CHECK-NEXT: mtfprd f0, r32249; CHECK-NEXT: xxmrghd v20, vs0, v202250; CHECK-NEXT: bl lrintf2251; CHECK-NEXT: nop2252; CHECK-NEXT: fmr f1, f272253; CHECK-NEXT: mtvsrd v21, r32254; CHECK-NEXT: bl lrintf2255; CHECK-NEXT: nop2256; CHECK-NEXT: fmr f1, f282257; CHECK-NEXT: mtfprd f0, r32258; CHECK-NEXT: xxmrghd v21, vs0, v212259; CHECK-NEXT: bl lrintf2260; CHECK-NEXT: nop2261; CHECK-NEXT: fmr f1, f292262; CHECK-NEXT: mtvsrd v23, r32263; CHECK-NEXT: bl lrintf2264; CHECK-NEXT: nop2265; CHECK-NEXT: mtfprd f0, r32266; CHECK-NEXT: li r3, 2002267; CHECK-NEXT: lxsspx f1, r1, r3 # 4-byte Folded Reload2268; CHECK-NEXT: xxmrghd v23, vs0, v232269; CHECK-NEXT: bl lrintf2270; CHECK-NEXT: nop2271; CHECK-NEXT: mtvsrd v25, r32272; CHECK-NEXT: li r3, 2042273; CHECK-NEXT: lxsspx f1, r1, r3 # 4-byte Folded Reload2274; CHECK-NEXT: bl lrintf2275; CHECK-NEXT: nop2276; CHECK-NEXT: mtfprd f0, r32277; CHECK-NEXT: li r3, 2402278; CHECK-NEXT: xxswapd vs1, v232279; CHECK-NEXT: li r4, 1282280; CHECK-NEXT: xxswapd vs2, v212281; CHECK-NEXT: xxswapd vs3, v312282; CHECK-NEXT: xxmrghd v2, vs0, v252283; CHECK-NEXT: xxswapd vs0, v22284; CHECK-NEXT: stxvd2x vs0, r30, r32285; CHECK-NEXT: li r3, 2242286; CHECK-NEXT: stxvd2x vs1, r30, r32287; CHECK-NEXT: li r3, 2082288; CHECK-NEXT: stxvd2x vs2, r30, r32289; CHECK-NEXT: li r3, 1922290; CHECK-NEXT: xxswapd vs0, v202291; CHECK-NEXT: stxvd2x vs0, r30, r32292; CHECK-NEXT: li r3, 1762293; CHECK-NEXT: xxswapd vs1, v222294; CHECK-NEXT: stxvd2x vs1, r30, r32295; CHECK-NEXT: li r3, 1602296; CHECK-NEXT: xxswapd vs2, v282297; CHECK-NEXT: xxswapd vs0, v242298; CHECK-NEXT: stxvd2x vs0, r30, r32299; CHECK-NEXT: li r3, 1442300; CHECK-NEXT: xxswapd vs1, v262301; CHECK-NEXT: stxvd2x vs1, r30, r32302; CHECK-NEXT: li r3, 1282303; CHECK-NEXT: stxvd2x vs2, r30, r32304; CHECK-NEXT: li r3, 1122305; CHECK-NEXT: xxswapd vs0, v302306; CHECK-NEXT: stxvd2x vs0, r30, r32307; CHECK-NEXT: li r3, 962308; CHECK-NEXT: stxvd2x vs3, r30, r32309; CHECK-NEXT: li r3, 802310; CHECK-NEXT: lxvd2x vs2, r1, r4 # 16-byte Folded Reload2311; CHECK-NEXT: li r4, 1442312; CHECK-NEXT: xxswapd vs1, v292313; CHECK-NEXT: stxvd2x vs1, r30, r32314; CHECK-NEXT: li r3, 642315; CHECK-NEXT: lxvd2x vs1, r1, r4 # 16-byte Folded Reload2316; CHECK-NEXT: li r4, 1602317; CHECK-NEXT: lxvd2x vs3, r1, r4 # 16-byte Folded Reload2318; CHECK-NEXT: li r4, 1762319; CHECK-NEXT: lxvd2x vs4, r1, r4 # 16-byte Folded Reload2320; CHECK-NEXT: xxswapd vs0, v272321; CHECK-NEXT: stxvd2x vs0, r30, r32322; CHECK-NEXT: li r3, 482323; CHECK-NEXT: xxswapd vs2, vs22324; CHECK-NEXT: stxvd2x vs2, r30, r32325; CHECK-NEXT: li r3, 322326; CHECK-NEXT: xxswapd vs1, vs12327; CHECK-NEXT: stxvd2x vs1, r30, r32328; CHECK-NEXT: li r3, 162329; CHECK-NEXT: xxswapd vs3, vs32330; CHECK-NEXT: stxvd2x vs3, r30, r32331; CHECK-NEXT: li r3, 3842332; CHECK-NEXT: xxswapd vs4, vs42333; CHECK-NEXT: stxvd2x vs4, 0, r302334; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload2335; CHECK-NEXT: li r3, 3682336; CHECK-NEXT: lfd f31, 680(r1) # 8-byte Folded Reload2337; CHECK-NEXT: lfd f30, 672(r1) # 8-byte Folded Reload2338; CHECK-NEXT: lfd f29, 664(r1) # 8-byte Folded Reload2339; CHECK-NEXT: lfd f28, 656(r1) # 8-byte Folded Reload2340; CHECK-NEXT: lfd f27, 648(r1) # 8-byte Folded Reload2341; CHECK-NEXT: lfd f26, 640(r1) # 8-byte Folded Reload2342; CHECK-NEXT: lfd f25, 632(r1) # 8-byte Folded Reload2343; CHECK-NEXT: lfd f24, 624(r1) # 8-byte Folded Reload2344; CHECK-NEXT: lfd f23, 616(r1) # 8-byte Folded Reload2345; CHECK-NEXT: lfd f22, 608(r1) # 8-byte Folded Reload2346; CHECK-NEXT: lfd f21, 600(r1) # 8-byte Folded Reload2347; CHECK-NEXT: lfd f20, 592(r1) # 8-byte Folded Reload2348; CHECK-NEXT: lfd f19, 584(r1) # 8-byte Folded Reload2349; CHECK-NEXT: lfd f18, 576(r1) # 8-byte Folded Reload2350; CHECK-NEXT: lfd f17, 568(r1) # 8-byte Folded Reload2351; CHECK-NEXT: lfd f16, 560(r1) # 8-byte Folded Reload2352; CHECK-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload2353; CHECK-NEXT: li r3, 3522354; CHECK-NEXT: lfd f15, 552(r1) # 8-byte Folded Reload2355; CHECK-NEXT: lfd f14, 544(r1) # 8-byte Folded Reload2356; CHECK-NEXT: ld r31, 536(r1) # 8-byte Folded Reload2357; CHECK-NEXT: ld r30, 528(r1) # 8-byte Folded Reload2358; CHECK-NEXT: ld r29, 520(r1) # 8-byte Folded Reload2359; CHECK-NEXT: ld r28, 512(r1) # 8-byte Folded Reload2360; CHECK-NEXT: lxvd2x v29, r1, r3 # 16-byte Folded Reload2361; CHECK-NEXT: li r3, 3362362; CHECK-NEXT: ld r27, 504(r1) # 8-byte Folded Reload2363; CHECK-NEXT: ld r26, 496(r1) # 8-byte Folded Reload2364; CHECK-NEXT: ld r25, 488(r1) # 8-byte Folded Reload2365; CHECK-NEXT: ld r24, 480(r1) # 8-byte Folded Reload2366; CHECK-NEXT: ld r23, 472(r1) # 8-byte Folded Reload2367; CHECK-NEXT: ld r22, 464(r1) # 8-byte Folded Reload2368; CHECK-NEXT: lxvd2x v28, r1, r3 # 16-byte Folded Reload2369; CHECK-NEXT: li r3, 3202370; CHECK-NEXT: ld r21, 456(r1) # 8-byte Folded Reload2371; CHECK-NEXT: ld r20, 448(r1) # 8-byte Folded Reload2372; CHECK-NEXT: ld r19, 440(r1) # 8-byte Folded Reload2373; CHECK-NEXT: ld r18, 432(r1) # 8-byte Folded Reload2374; CHECK-NEXT: ld r17, 424(r1) # 8-byte Folded Reload2375; CHECK-NEXT: ld r16, 416(r1) # 8-byte Folded Reload2376; CHECK-NEXT: lxvd2x v27, r1, r3 # 16-byte Folded Reload2377; CHECK-NEXT: li r3, 3042378; CHECK-NEXT: ld r15, 408(r1) # 8-byte Folded Reload2379; CHECK-NEXT: ld r14, 400(r1) # 8-byte Folded Reload2380; CHECK-NEXT: lxvd2x v26, r1, r3 # 16-byte Folded Reload2381; CHECK-NEXT: li r3, 2882382; CHECK-NEXT: lxvd2x v25, r1, r3 # 16-byte Folded Reload2383; CHECK-NEXT: li r3, 2722384; CHECK-NEXT: lxvd2x v24, r1, r3 # 16-byte Folded Reload2385; CHECK-NEXT: li r3, 2562386; CHECK-NEXT: lxvd2x v23, r1, r3 # 16-byte Folded Reload2387; CHECK-NEXT: li r3, 2402388; CHECK-NEXT: lxvd2x v22, r1, r3 # 16-byte Folded Reload2389; CHECK-NEXT: li r3, 2242390; CHECK-NEXT: lxvd2x v21, r1, r3 # 16-byte Folded Reload2391; CHECK-NEXT: li r3, 2082392; CHECK-NEXT: lxvd2x v20, r1, r3 # 16-byte Folded Reload2393; CHECK-NEXT: addi r1, r1, 6882394; CHECK-NEXT: ld r0, 16(r1)2395; CHECK-NEXT: mtlr r02396; CHECK-NEXT: blr2397 %a = call <32 x i64> @llvm.lrint.v32i64.v32f16(<32 x half> %x)2398 ret <32 x i64> %a2399}2400declare <32 x i64> @llvm.lrint.v32i64.v32f16(<32 x half>)2401 2402define <1 x i64> @lrint_v1f32(<1 x float> %x) nounwind {2403; BE-LABEL: lrint_v1f32:2404; BE: # %bb.0:2405; BE-NEXT: mflr r02406; BE-NEXT: stdu r1, -112(r1)2407; BE-NEXT: std r0, 128(r1)2408; BE-NEXT: bl lrintf2409; BE-NEXT: nop2410; BE-NEXT: addi r1, r1, 1122411; BE-NEXT: ld r0, 16(r1)2412; BE-NEXT: mtlr r02413; BE-NEXT: blr2414;2415; CHECK-LABEL: lrint_v1f32:2416; CHECK: # %bb.0:2417; CHECK-NEXT: mflr r02418; CHECK-NEXT: stdu r1, -32(r1)2419; CHECK-NEXT: std r0, 48(r1)2420; CHECK-NEXT: bl lrintf2421; CHECK-NEXT: nop2422; CHECK-NEXT: addi r1, r1, 322423; CHECK-NEXT: ld r0, 16(r1)2424; CHECK-NEXT: mtlr r02425; CHECK-NEXT: blr2426 %a = call <1 x i64> @llvm.lrint.v1i64.v1f32(<1 x float> %x)2427 ret <1 x i64> %a2428}2429declare <1 x i64> @llvm.lrint.v1i64.v1f32(<1 x float>)2430 2431define <2 x i64> @lrint_v2f32(<2 x float> %x) nounwind {2432; BE-LABEL: lrint_v2f32:2433; BE: # %bb.0:2434; BE-NEXT: mflr r02435; BE-NEXT: stdu r1, -144(r1)2436; BE-NEXT: addi r3, r1, 1122437; BE-NEXT: std r0, 160(r1)2438; BE-NEXT: stxvw4x v2, 0, r32439; BE-NEXT: lfs f1, 116(r1)2440; BE-NEXT: bl lrintf2441; BE-NEXT: nop2442; BE-NEXT: lfs f1, 112(r1)2443; BE-NEXT: std r3, 136(r1)2444; BE-NEXT: bl lrintf2445; BE-NEXT: nop2446; BE-NEXT: std r3, 128(r1)2447; BE-NEXT: addi r3, r1, 1282448; BE-NEXT: lxvd2x v2, 0, r32449; BE-NEXT: addi r1, r1, 1442450; BE-NEXT: ld r0, 16(r1)2451; BE-NEXT: mtlr r02452; BE-NEXT: blr2453;2454; CHECK-LABEL: lrint_v2f32:2455; CHECK: # %bb.0:2456; CHECK-NEXT: mflr r02457; CHECK-NEXT: stdu r1, -64(r1)2458; CHECK-NEXT: xxsldwi vs0, v2, v2, 32459; CHECK-NEXT: li r3, 482460; CHECK-NEXT: std r0, 80(r1)2461; CHECK-NEXT: xscvspdpn f1, vs02462; CHECK-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill2463; CHECK-NEXT: vmr v31, v22464; CHECK-NEXT: bl lrintf2465; CHECK-NEXT: nop2466; CHECK-NEXT: xxswapd vs0, v312467; CHECK-NEXT: mtvsrd v31, r32468; CHECK-NEXT: xscvspdpn f1, vs02469; CHECK-NEXT: bl lrintf2470; CHECK-NEXT: nop2471; CHECK-NEXT: mtfprd f0, r32472; CHECK-NEXT: li r3, 482473; CHECK-NEXT: xxmrghd v2, vs0, v312474; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload2475; CHECK-NEXT: addi r1, r1, 642476; CHECK-NEXT: ld r0, 16(r1)2477; CHECK-NEXT: mtlr r02478; CHECK-NEXT: blr2479 %a = call <2 x i64> @llvm.lrint.v2i64.v2f32(<2 x float> %x)2480 ret <2 x i64> %a2481}2482declare <2 x i64> @llvm.lrint.v2i64.v2f32(<2 x float>)2483 2484define <4 x i64> @lrint_v4f32(<4 x float> %x) nounwind {2485; BE-LABEL: lrint_v4f32:2486; BE: # %bb.0:2487; BE-NEXT: mflr r02488; BE-NEXT: stdu r1, -160(r1)2489; BE-NEXT: addi r3, r1, 1122490; BE-NEXT: std r0, 176(r1)2491; BE-NEXT: stxvw4x v2, 0, r32492; BE-NEXT: lfs f1, 116(r1)2493; BE-NEXT: bl lrintf2494; BE-NEXT: nop2495; BE-NEXT: lfs f1, 112(r1)2496; BE-NEXT: std r3, 136(r1)2497; BE-NEXT: bl lrintf2498; BE-NEXT: nop2499; BE-NEXT: lfs f1, 124(r1)2500; BE-NEXT: std r3, 128(r1)2501; BE-NEXT: bl lrintf2502; BE-NEXT: nop2503; BE-NEXT: lfs f1, 120(r1)2504; BE-NEXT: std r3, 152(r1)2505; BE-NEXT: bl lrintf2506; BE-NEXT: nop2507; BE-NEXT: std r3, 144(r1)2508; BE-NEXT: addi r3, r1, 1282509; BE-NEXT: lxvd2x v2, 0, r32510; BE-NEXT: addi r3, r1, 1442511; BE-NEXT: lxvd2x v3, 0, r32512; BE-NEXT: addi r1, r1, 1602513; BE-NEXT: ld r0, 16(r1)2514; BE-NEXT: mtlr r02515; BE-NEXT: blr2516;2517; CHECK-LABEL: lrint_v4f32:2518; CHECK: # %bb.0:2519; CHECK-NEXT: mflr r02520; CHECK-NEXT: stdu r1, -80(r1)2521; CHECK-NEXT: xxsldwi vs0, v2, v2, 32522; CHECK-NEXT: li r3, 482523; CHECK-NEXT: std r0, 96(r1)2524; CHECK-NEXT: xscvspdpn f1, vs02525; CHECK-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill2526; CHECK-NEXT: li r3, 642527; CHECK-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill2528; CHECK-NEXT: vmr v31, v22529; CHECK-NEXT: bl lrintf2530; CHECK-NEXT: nop2531; CHECK-NEXT: xxswapd vs0, v312532; CHECK-NEXT: mtvsrd v30, r32533; CHECK-NEXT: xscvspdpn f1, vs02534; CHECK-NEXT: bl lrintf2535; CHECK-NEXT: nop2536; CHECK-NEXT: xscvspdpn f1, v312537; CHECK-NEXT: mtfprd f0, r32538; CHECK-NEXT: xxmrghd v30, vs0, v302539; CHECK-NEXT: bl lrintf2540; CHECK-NEXT: nop2541; CHECK-NEXT: xxsldwi vs0, v31, v31, 12542; CHECK-NEXT: mtvsrd v31, r32543; CHECK-NEXT: xscvspdpn f1, vs02544; CHECK-NEXT: bl lrintf2545; CHECK-NEXT: nop2546; CHECK-NEXT: mtfprd f0, r32547; CHECK-NEXT: li r3, 642548; CHECK-NEXT: vmr v2, v302549; CHECK-NEXT: xxmrghd v3, v31, vs02550; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload2551; CHECK-NEXT: li r3, 482552; CHECK-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload2553; CHECK-NEXT: addi r1, r1, 802554; CHECK-NEXT: ld r0, 16(r1)2555; CHECK-NEXT: mtlr r02556; CHECK-NEXT: blr2557 %a = call <4 x i64> @llvm.lrint.v4i64.v4f32(<4 x float> %x)2558 ret <4 x i64> %a2559}2560declare <4 x i64> @llvm.lrint.v4i64.v4f32(<4 x float>)2561 2562define <8 x i64> @lrint_v8f32(<8 x float> %x) nounwind {2563; BE-LABEL: lrint_v8f32:2564; BE: # %bb.0:2565; BE-NEXT: mflr r02566; BE-NEXT: stdu r1, -208(r1)2567; BE-NEXT: addi r3, r1, 1122568; BE-NEXT: std r0, 224(r1)2569; BE-NEXT: stxvw4x v2, 0, r32570; BE-NEXT: addi r3, r1, 1282571; BE-NEXT: stxvw4x v3, 0, r32572; BE-NEXT: lfs f1, 116(r1)2573; BE-NEXT: bl lrintf2574; BE-NEXT: nop2575; BE-NEXT: lfs f1, 112(r1)2576; BE-NEXT: std r3, 152(r1)2577; BE-NEXT: bl lrintf2578; BE-NEXT: nop2579; BE-NEXT: lfs f1, 124(r1)2580; BE-NEXT: std r3, 144(r1)2581; BE-NEXT: bl lrintf2582; BE-NEXT: nop2583; BE-NEXT: lfs f1, 120(r1)2584; BE-NEXT: std r3, 168(r1)2585; BE-NEXT: bl lrintf2586; BE-NEXT: nop2587; BE-NEXT: lfs f1, 132(r1)2588; BE-NEXT: std r3, 160(r1)2589; BE-NEXT: bl lrintf2590; BE-NEXT: nop2591; BE-NEXT: lfs f1, 128(r1)2592; BE-NEXT: std r3, 184(r1)2593; BE-NEXT: bl lrintf2594; BE-NEXT: nop2595; BE-NEXT: lfs f1, 140(r1)2596; BE-NEXT: std r3, 176(r1)2597; BE-NEXT: bl lrintf2598; BE-NEXT: nop2599; BE-NEXT: lfs f1, 136(r1)2600; BE-NEXT: std r3, 200(r1)2601; BE-NEXT: bl lrintf2602; BE-NEXT: nop2603; BE-NEXT: std r3, 192(r1)2604; BE-NEXT: addi r3, r1, 1442605; BE-NEXT: lxvd2x v2, 0, r32606; BE-NEXT: addi r3, r1, 1602607; BE-NEXT: lxvd2x v3, 0, r32608; BE-NEXT: addi r3, r1, 1762609; BE-NEXT: lxvd2x v4, 0, r32610; BE-NEXT: addi r3, r1, 1922611; BE-NEXT: lxvd2x v5, 0, r32612; BE-NEXT: addi r1, r1, 2082613; BE-NEXT: ld r0, 16(r1)2614; BE-NEXT: mtlr r02615; BE-NEXT: blr2616;2617; CHECK-LABEL: lrint_v8f32:2618; CHECK: # %bb.0:2619; CHECK-NEXT: mflr r02620; CHECK-NEXT: stdu r1, -112(r1)2621; CHECK-NEXT: li r3, 482622; CHECK-NEXT: xxsldwi vs0, v2, v2, 32623; CHECK-NEXT: std r0, 128(r1)2624; CHECK-NEXT: stxvd2x v28, r1, r3 # 16-byte Folded Spill2625; CHECK-NEXT: li r3, 642626; CHECK-NEXT: xscvspdpn f1, vs02627; CHECK-NEXT: stxvd2x v29, r1, r3 # 16-byte Folded Spill2628; CHECK-NEXT: li r3, 802629; CHECK-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill2630; CHECK-NEXT: li r3, 962631; CHECK-NEXT: vmr v30, v22632; CHECK-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill2633; CHECK-NEXT: vmr v31, v32634; CHECK-NEXT: bl lrintf2635; CHECK-NEXT: nop2636; CHECK-NEXT: xxswapd vs0, v302637; CHECK-NEXT: mtvsrd v29, r32638; CHECK-NEXT: xscvspdpn f1, vs02639; CHECK-NEXT: bl lrintf2640; CHECK-NEXT: nop2641; CHECK-NEXT: xscvspdpn f1, v302642; CHECK-NEXT: mtfprd f0, r32643; CHECK-NEXT: xxmrghd v29, vs0, v292644; CHECK-NEXT: bl lrintf2645; CHECK-NEXT: nop2646; CHECK-NEXT: xxsldwi vs0, v30, v30, 12647; CHECK-NEXT: mtvsrd v30, r32648; CHECK-NEXT: xscvspdpn f1, vs02649; CHECK-NEXT: bl lrintf2650; CHECK-NEXT: nop2651; CHECK-NEXT: mtfprd f0, r32652; CHECK-NEXT: xxmrghd v30, v30, vs02653; CHECK-NEXT: xxsldwi vs0, v31, v31, 32654; CHECK-NEXT: xscvspdpn f1, vs02655; CHECK-NEXT: bl lrintf2656; CHECK-NEXT: nop2657; CHECK-NEXT: xxswapd vs0, v312658; CHECK-NEXT: mtvsrd v28, r32659; CHECK-NEXT: xscvspdpn f1, vs02660; CHECK-NEXT: bl lrintf2661; CHECK-NEXT: nop2662; CHECK-NEXT: xscvspdpn f1, v312663; CHECK-NEXT: mtfprd f0, r32664; CHECK-NEXT: xxmrghd v28, vs0, v282665; CHECK-NEXT: bl lrintf2666; CHECK-NEXT: nop2667; CHECK-NEXT: xxsldwi vs0, v31, v31, 12668; CHECK-NEXT: mtvsrd v31, r32669; CHECK-NEXT: xscvspdpn f1, vs02670; CHECK-NEXT: bl lrintf2671; CHECK-NEXT: nop2672; CHECK-NEXT: mtfprd f0, r32673; CHECK-NEXT: li r3, 962674; CHECK-NEXT: vmr v3, v302675; CHECK-NEXT: vmr v2, v292676; CHECK-NEXT: vmr v4, v282677; CHECK-NEXT: xxmrghd v5, v31, vs02678; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload2679; CHECK-NEXT: li r3, 802680; CHECK-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload2681; CHECK-NEXT: li r3, 642682; CHECK-NEXT: lxvd2x v29, r1, r3 # 16-byte Folded Reload2683; CHECK-NEXT: li r3, 482684; CHECK-NEXT: lxvd2x v28, r1, r3 # 16-byte Folded Reload2685; CHECK-NEXT: addi r1, r1, 1122686; CHECK-NEXT: ld r0, 16(r1)2687; CHECK-NEXT: mtlr r02688; CHECK-NEXT: blr2689 %a = call <8 x i64> @llvm.lrint.v8i64.v8f32(<8 x float> %x)2690 ret <8 x i64> %a2691}2692declare <8 x i64> @llvm.lrint.v8i64.v8f32(<8 x float>)2693 2694define <16 x i64> @lrint_v16i64_v16f32(<16 x float> %x) nounwind {2695; BE-LABEL: lrint_v16i64_v16f32:2696; BE: # %bb.0:2697; BE-NEXT: mflr r02698; BE-NEXT: stdu r1, -304(r1)2699; BE-NEXT: addi r3, r1, 1122700; BE-NEXT: std r0, 320(r1)2701; BE-NEXT: stxvw4x v2, 0, r32702; BE-NEXT: addi r3, r1, 1282703; BE-NEXT: stxvw4x v3, 0, r32704; BE-NEXT: addi r3, r1, 1442705; BE-NEXT: stxvw4x v4, 0, r32706; BE-NEXT: addi r3, r1, 1602707; BE-NEXT: stxvw4x v5, 0, r32708; BE-NEXT: lfs f1, 116(r1)2709; BE-NEXT: bl lrintf2710; BE-NEXT: nop2711; BE-NEXT: lfs f1, 112(r1)2712; BE-NEXT: std r3, 184(r1)2713; BE-NEXT: bl lrintf2714; BE-NEXT: nop2715; BE-NEXT: lfs f1, 124(r1)2716; BE-NEXT: std r3, 176(r1)2717; BE-NEXT: bl lrintf2718; BE-NEXT: nop2719; BE-NEXT: lfs f1, 120(r1)2720; BE-NEXT: std r3, 200(r1)2721; BE-NEXT: bl lrintf2722; BE-NEXT: nop2723; BE-NEXT: lfs f1, 132(r1)2724; BE-NEXT: std r3, 192(r1)2725; BE-NEXT: bl lrintf2726; BE-NEXT: nop2727; BE-NEXT: lfs f1, 128(r1)2728; BE-NEXT: std r3, 216(r1)2729; BE-NEXT: bl lrintf2730; BE-NEXT: nop2731; BE-NEXT: lfs f1, 140(r1)2732; BE-NEXT: std r3, 208(r1)2733; BE-NEXT: bl lrintf2734; BE-NEXT: nop2735; BE-NEXT: lfs f1, 136(r1)2736; BE-NEXT: std r3, 232(r1)2737; BE-NEXT: bl lrintf2738; BE-NEXT: nop2739; BE-NEXT: lfs f1, 148(r1)2740; BE-NEXT: std r3, 224(r1)2741; BE-NEXT: bl lrintf2742; BE-NEXT: nop2743; BE-NEXT: lfs f1, 144(r1)2744; BE-NEXT: std r3, 248(r1)2745; BE-NEXT: bl lrintf2746; BE-NEXT: nop2747; BE-NEXT: lfs f1, 156(r1)2748; BE-NEXT: std r3, 240(r1)2749; BE-NEXT: bl lrintf2750; BE-NEXT: nop2751; BE-NEXT: lfs f1, 152(r1)2752; BE-NEXT: std r3, 264(r1)2753; BE-NEXT: bl lrintf2754; BE-NEXT: nop2755; BE-NEXT: lfs f1, 164(r1)2756; BE-NEXT: std r3, 256(r1)2757; BE-NEXT: bl lrintf2758; BE-NEXT: nop2759; BE-NEXT: lfs f1, 160(r1)2760; BE-NEXT: std r3, 280(r1)2761; BE-NEXT: bl lrintf2762; BE-NEXT: nop2763; BE-NEXT: lfs f1, 172(r1)2764; BE-NEXT: std r3, 272(r1)2765; BE-NEXT: bl lrintf2766; BE-NEXT: nop2767; BE-NEXT: lfs f1, 168(r1)2768; BE-NEXT: std r3, 296(r1)2769; BE-NEXT: bl lrintf2770; BE-NEXT: nop2771; BE-NEXT: std r3, 288(r1)2772; BE-NEXT: addi r3, r1, 1762773; BE-NEXT: lxvd2x v2, 0, r32774; BE-NEXT: addi r3, r1, 1922775; BE-NEXT: lxvd2x v3, 0, r32776; BE-NEXT: addi r3, r1, 2082777; BE-NEXT: lxvd2x v4, 0, r32778; BE-NEXT: addi r3, r1, 2242779; BE-NEXT: lxvd2x v5, 0, r32780; BE-NEXT: addi r3, r1, 2402781; BE-NEXT: lxvd2x v6, 0, r32782; BE-NEXT: addi r3, r1, 2562783; BE-NEXT: lxvd2x v7, 0, r32784; BE-NEXT: addi r3, r1, 2722785; BE-NEXT: lxvd2x v8, 0, r32786; BE-NEXT: addi r3, r1, 2882787; BE-NEXT: lxvd2x v9, 0, r32788; BE-NEXT: addi r1, r1, 3042789; BE-NEXT: ld r0, 16(r1)2790; BE-NEXT: mtlr r02791; BE-NEXT: blr2792;2793; CHECK-LABEL: lrint_v16i64_v16f32:2794; CHECK: # %bb.0:2795; CHECK-NEXT: mflr r02796; CHECK-NEXT: stdu r1, -176(r1)2797; CHECK-NEXT: li r3, 482798; CHECK-NEXT: std r0, 192(r1)2799; CHECK-NEXT: xxsldwi vs0, v2, v2, 32800; CHECK-NEXT: stxvd2x v24, r1, r3 # 16-byte Folded Spill2801; CHECK-NEXT: li r3, 642802; CHECK-NEXT: xscvspdpn f1, vs02803; CHECK-NEXT: stxvd2x v25, r1, r3 # 16-byte Folded Spill2804; CHECK-NEXT: li r3, 802805; CHECK-NEXT: stxvd2x v26, r1, r3 # 16-byte Folded Spill2806; CHECK-NEXT: li r3, 962807; CHECK-NEXT: vmr v26, v32808; CHECK-NEXT: stxvd2x v27, r1, r3 # 16-byte Folded Spill2809; CHECK-NEXT: li r3, 1122810; CHECK-NEXT: stxvd2x v28, r1, r3 # 16-byte Folded Spill2811; CHECK-NEXT: li r3, 1282812; CHECK-NEXT: vmr v28, v42813; CHECK-NEXT: stxvd2x v29, r1, r3 # 16-byte Folded Spill2814; CHECK-NEXT: li r3, 1442815; CHECK-NEXT: vmr v29, v22816; CHECK-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill2817; CHECK-NEXT: li r3, 1602818; CHECK-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill2819; CHECK-NEXT: vmr v31, v52820; CHECK-NEXT: bl lrintf2821; CHECK-NEXT: nop2822; CHECK-NEXT: xxswapd vs0, v292823; CHECK-NEXT: mtvsrd v30, r32824; CHECK-NEXT: xscvspdpn f1, vs02825; CHECK-NEXT: bl lrintf2826; CHECK-NEXT: nop2827; CHECK-NEXT: xscvspdpn f1, v292828; CHECK-NEXT: mtfprd f0, r32829; CHECK-NEXT: xxmrghd v30, vs0, v302830; CHECK-NEXT: bl lrintf2831; CHECK-NEXT: nop2832; CHECK-NEXT: xxsldwi vs0, v29, v29, 12833; CHECK-NEXT: mtvsrd v29, r32834; CHECK-NEXT: xscvspdpn f1, vs02835; CHECK-NEXT: bl lrintf2836; CHECK-NEXT: nop2837; CHECK-NEXT: mtfprd f0, r32838; CHECK-NEXT: xxmrghd v29, v29, vs02839; CHECK-NEXT: xxsldwi vs0, v26, v26, 32840; CHECK-NEXT: xscvspdpn f1, vs02841; CHECK-NEXT: bl lrintf2842; CHECK-NEXT: nop2843; CHECK-NEXT: xxswapd vs0, v262844; CHECK-NEXT: mtvsrd v27, r32845; CHECK-NEXT: xscvspdpn f1, vs02846; CHECK-NEXT: bl lrintf2847; CHECK-NEXT: nop2848; CHECK-NEXT: xscvspdpn f1, v262849; CHECK-NEXT: mtfprd f0, r32850; CHECK-NEXT: xxmrghd v27, vs0, v272851; CHECK-NEXT: bl lrintf2852; CHECK-NEXT: nop2853; CHECK-NEXT: xxsldwi vs0, v26, v26, 12854; CHECK-NEXT: mtvsrd v26, r32855; CHECK-NEXT: xscvspdpn f1, vs02856; CHECK-NEXT: bl lrintf2857; CHECK-NEXT: nop2858; CHECK-NEXT: mtfprd f0, r32859; CHECK-NEXT: xxmrghd v26, v26, vs02860; CHECK-NEXT: xxsldwi vs0, v28, v28, 32861; CHECK-NEXT: xscvspdpn f1, vs02862; CHECK-NEXT: bl lrintf2863; CHECK-NEXT: nop2864; CHECK-NEXT: xxswapd vs0, v282865; CHECK-NEXT: mtvsrd v25, r32866; CHECK-NEXT: xscvspdpn f1, vs02867; CHECK-NEXT: bl lrintf2868; CHECK-NEXT: nop2869; CHECK-NEXT: xscvspdpn f1, v282870; CHECK-NEXT: mtfprd f0, r32871; CHECK-NEXT: xxmrghd v25, vs0, v252872; CHECK-NEXT: bl lrintf2873; CHECK-NEXT: nop2874; CHECK-NEXT: xxsldwi vs0, v28, v28, 12875; CHECK-NEXT: mtvsrd v28, r32876; CHECK-NEXT: xscvspdpn f1, vs02877; CHECK-NEXT: bl lrintf2878; CHECK-NEXT: nop2879; CHECK-NEXT: mtfprd f0, r32880; CHECK-NEXT: xxmrghd v28, v28, vs02881; CHECK-NEXT: xxsldwi vs0, v31, v31, 32882; CHECK-NEXT: xscvspdpn f1, vs02883; CHECK-NEXT: bl lrintf2884; CHECK-NEXT: nop2885; CHECK-NEXT: xxswapd vs0, v312886; CHECK-NEXT: mtvsrd v24, r32887; CHECK-NEXT: xscvspdpn f1, vs02888; CHECK-NEXT: bl lrintf2889; CHECK-NEXT: nop2890; CHECK-NEXT: xscvspdpn f1, v312891; CHECK-NEXT: mtfprd f0, r32892; CHECK-NEXT: xxmrghd v24, vs0, v242893; CHECK-NEXT: bl lrintf2894; CHECK-NEXT: nop2895; CHECK-NEXT: xxsldwi vs0, v31, v31, 12896; CHECK-NEXT: mtvsrd v31, r32897; CHECK-NEXT: xscvspdpn f1, vs02898; CHECK-NEXT: bl lrintf2899; CHECK-NEXT: nop2900; CHECK-NEXT: mtfprd f0, r32901; CHECK-NEXT: li r3, 1602902; CHECK-NEXT: vmr v2, v302903; CHECK-NEXT: vmr v3, v292904; CHECK-NEXT: vmr v7, v282905; CHECK-NEXT: vmr v4, v272906; CHECK-NEXT: vmr v5, v262907; CHECK-NEXT: vmr v6, v252908; CHECK-NEXT: vmr v8, v242909; CHECK-NEXT: xxmrghd v9, v31, vs02910; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload2911; CHECK-NEXT: li r3, 1442912; CHECK-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload2913; CHECK-NEXT: li r3, 1282914; CHECK-NEXT: lxvd2x v29, r1, r3 # 16-byte Folded Reload2915; CHECK-NEXT: li r3, 1122916; CHECK-NEXT: lxvd2x v28, r1, r3 # 16-byte Folded Reload2917; CHECK-NEXT: li r3, 962918; CHECK-NEXT: lxvd2x v27, r1, r3 # 16-byte Folded Reload2919; CHECK-NEXT: li r3, 802920; CHECK-NEXT: lxvd2x v26, r1, r3 # 16-byte Folded Reload2921; CHECK-NEXT: li r3, 642922; CHECK-NEXT: lxvd2x v25, r1, r3 # 16-byte Folded Reload2923; CHECK-NEXT: li r3, 482924; CHECK-NEXT: lxvd2x v24, r1, r3 # 16-byte Folded Reload2925; CHECK-NEXT: addi r1, r1, 1762926; CHECK-NEXT: ld r0, 16(r1)2927; CHECK-NEXT: mtlr r02928; CHECK-NEXT: blr2929 %a = call <16 x i64> @llvm.lrint.v16i64.v16f32(<16 x float> %x)2930 ret <16 x i64> %a2931}2932declare <16 x i64> @llvm.lrint.v16i64.v16f32(<16 x float>)2933 2934define <1 x i64> @lrint_v1f64(<1 x double> %x) nounwind {2935; BE-LABEL: lrint_v1f64:2936; BE: # %bb.0:2937; BE-NEXT: mflr r02938; BE-NEXT: stdu r1, -112(r1)2939; BE-NEXT: std r0, 128(r1)2940; BE-NEXT: bl lrint2941; BE-NEXT: nop2942; BE-NEXT: addi r1, r1, 1122943; BE-NEXT: ld r0, 16(r1)2944; BE-NEXT: mtlr r02945; BE-NEXT: blr2946;2947; CHECK-LABEL: lrint_v1f64:2948; CHECK: # %bb.0:2949; CHECK-NEXT: mflr r02950; CHECK-NEXT: stdu r1, -32(r1)2951; CHECK-NEXT: std r0, 48(r1)2952; CHECK-NEXT: bl lrint2953; CHECK-NEXT: nop2954; CHECK-NEXT: addi r1, r1, 322955; CHECK-NEXT: ld r0, 16(r1)2956; CHECK-NEXT: mtlr r02957; CHECK-NEXT: blr2958 %a = call <1 x i64> @llvm.lrint.v1i64.v1f64(<1 x double> %x)2959 ret <1 x i64> %a2960}2961declare <1 x i64> @llvm.lrint.v1i64.v1f64(<1 x double>)2962 2963define <2 x i64> @lrint_v2f64(<2 x double> %x) nounwind {2964; BE-LABEL: lrint_v2f64:2965; BE: # %bb.0:2966; BE-NEXT: mflr r02967; BE-NEXT: stdu r1, -160(r1)2968; BE-NEXT: li r3, 1442969; BE-NEXT: std r0, 176(r1)2970; BE-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill2971; BE-NEXT: vmr v31, v22972; BE-NEXT: xxlor f1, v31, v312973; BE-NEXT: bl lrint2974; BE-NEXT: nop2975; BE-NEXT: xxswapd vs1, v312976; BE-NEXT: std r3, 128(r1)2977; BE-NEXT: bl lrint2978; BE-NEXT: nop2979; BE-NEXT: std r3, 136(r1)2980; BE-NEXT: addi r3, r1, 1282981; BE-NEXT: lxvd2x v2, 0, r32982; BE-NEXT: li r3, 1442983; BE-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload2984; BE-NEXT: addi r1, r1, 1602985; BE-NEXT: ld r0, 16(r1)2986; BE-NEXT: mtlr r02987; BE-NEXT: blr2988;2989; CHECK-LABEL: lrint_v2f64:2990; CHECK: # %bb.0:2991; CHECK-NEXT: mflr r02992; CHECK-NEXT: stdu r1, -64(r1)2993; CHECK-NEXT: li r3, 482994; CHECK-NEXT: std r0, 80(r1)2995; CHECK-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill2996; CHECK-NEXT: vmr v31, v22997; CHECK-NEXT: xxlor f1, v31, v312998; CHECK-NEXT: bl lrint2999; CHECK-NEXT: nop3000; CHECK-NEXT: xxswapd vs1, v313001; CHECK-NEXT: mtvsrd v31, r33002; CHECK-NEXT: bl lrint3003; CHECK-NEXT: nop3004; CHECK-NEXT: mtfprd f0, r33005; CHECK-NEXT: li r3, 483006; CHECK-NEXT: xxmrghd v2, v31, vs03007; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload3008; CHECK-NEXT: addi r1, r1, 643009; CHECK-NEXT: ld r0, 16(r1)3010; CHECK-NEXT: mtlr r03011; CHECK-NEXT: blr3012 %a = call <2 x i64> @llvm.lrint.v2i64.v2f64(<2 x double> %x)3013 ret <2 x i64> %a3014}3015declare <2 x i64> @llvm.lrint.v2i64.v2f64(<2 x double>)3016 3017define <4 x i64> @lrint_v4f64(<4 x double> %x) nounwind {3018; BE-LABEL: lrint_v4f64:3019; BE: # %bb.0:3020; BE-NEXT: mflr r03021; BE-NEXT: stdu r1, -192(r1)3022; BE-NEXT: li r3, 1603023; BE-NEXT: std r0, 208(r1)3024; BE-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill3025; BE-NEXT: vmr v30, v23026; BE-NEXT: li r3, 1763027; BE-NEXT: xxlor f1, v30, v303028; BE-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill3029; BE-NEXT: vmr v31, v33030; BE-NEXT: bl lrint3031; BE-NEXT: nop3032; BE-NEXT: xxswapd vs1, v303033; BE-NEXT: std r3, 128(r1)3034; BE-NEXT: bl lrint3035; BE-NEXT: nop3036; BE-NEXT: xxlor f1, v31, v313037; BE-NEXT: std r3, 136(r1)3038; BE-NEXT: bl lrint3039; BE-NEXT: nop3040; BE-NEXT: xxswapd vs1, v313041; BE-NEXT: std r3, 144(r1)3042; BE-NEXT: bl lrint3043; BE-NEXT: nop3044; BE-NEXT: std r3, 152(r1)3045; BE-NEXT: addi r3, r1, 1283046; BE-NEXT: lxvd2x v2, 0, r33047; BE-NEXT: addi r3, r1, 1443048; BE-NEXT: lxvd2x v3, 0, r33049; BE-NEXT: li r3, 1763050; BE-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload3051; BE-NEXT: li r3, 1603052; BE-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload3053; BE-NEXT: addi r1, r1, 1923054; BE-NEXT: ld r0, 16(r1)3055; BE-NEXT: mtlr r03056; BE-NEXT: blr3057;3058; CHECK-LABEL: lrint_v4f64:3059; CHECK: # %bb.0:3060; CHECK-NEXT: mflr r03061; CHECK-NEXT: stdu r1, -80(r1)3062; CHECK-NEXT: li r3, 483063; CHECK-NEXT: std r0, 96(r1)3064; CHECK-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill3065; CHECK-NEXT: vmr v30, v23066; CHECK-NEXT: li r3, 643067; CHECK-NEXT: xxlor f1, v30, v303068; CHECK-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill3069; CHECK-NEXT: vmr v31, v33070; CHECK-NEXT: bl lrint3071; CHECK-NEXT: nop3072; CHECK-NEXT: xxswapd vs1, v303073; CHECK-NEXT: mtvsrd v30, r33074; CHECK-NEXT: bl lrint3075; CHECK-NEXT: nop3076; CHECK-NEXT: mtfprd f0, r33077; CHECK-NEXT: xxlor f1, v31, v313078; CHECK-NEXT: xxmrghd v30, v30, vs03079; CHECK-NEXT: bl lrint3080; CHECK-NEXT: nop3081; CHECK-NEXT: xxswapd vs1, v313082; CHECK-NEXT: mtvsrd v31, r33083; CHECK-NEXT: bl lrint3084; CHECK-NEXT: nop3085; CHECK-NEXT: mtfprd f0, r33086; CHECK-NEXT: li r3, 643087; CHECK-NEXT: vmr v2, v303088; CHECK-NEXT: xxmrghd v3, v31, vs03089; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload3090; CHECK-NEXT: li r3, 483091; CHECK-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload3092; CHECK-NEXT: addi r1, r1, 803093; CHECK-NEXT: ld r0, 16(r1)3094; CHECK-NEXT: mtlr r03095; CHECK-NEXT: blr3096 %a = call <4 x i64> @llvm.lrint.v4i64.v4f64(<4 x double> %x)3097 ret <4 x i64> %a3098}3099declare <4 x i64> @llvm.lrint.v4i64.v4f64(<4 x double>)3100 3101define <8 x i64> @lrint_v8f64(<8 x double> %x) nounwind {3102; BE-LABEL: lrint_v8f64:3103; BE: # %bb.0:3104; BE-NEXT: mflr r03105; BE-NEXT: stdu r1, -256(r1)3106; BE-NEXT: li r3, 1923107; BE-NEXT: std r0, 272(r1)3108; BE-NEXT: stxvd2x v28, r1, r3 # 16-byte Folded Spill3109; BE-NEXT: li r3, 2083110; BE-NEXT: vmr v28, v23111; BE-NEXT: stxvd2x v29, r1, r3 # 16-byte Folded Spill3112; BE-NEXT: li r3, 2243113; BE-NEXT: xxlor f1, v28, v283114; BE-NEXT: vmr v29, v33115; BE-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill3116; BE-NEXT: li r3, 2403117; BE-NEXT: vmr v30, v43118; BE-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill3119; BE-NEXT: vmr v31, v53120; BE-NEXT: bl lrint3121; BE-NEXT: nop3122; BE-NEXT: xxswapd vs1, v283123; BE-NEXT: std r3, 128(r1)3124; BE-NEXT: bl lrint3125; BE-NEXT: nop3126; BE-NEXT: xxlor f1, v29, v293127; BE-NEXT: std r3, 136(r1)3128; BE-NEXT: bl lrint3129; BE-NEXT: nop3130; BE-NEXT: xxswapd vs1, v293131; BE-NEXT: std r3, 144(r1)3132; BE-NEXT: bl lrint3133; BE-NEXT: nop3134; BE-NEXT: xxlor f1, v30, v303135; BE-NEXT: std r3, 152(r1)3136; BE-NEXT: bl lrint3137; BE-NEXT: nop3138; BE-NEXT: xxswapd vs1, v303139; BE-NEXT: std r3, 160(r1)3140; BE-NEXT: bl lrint3141; BE-NEXT: nop3142; BE-NEXT: xxlor f1, v31, v313143; BE-NEXT: std r3, 168(r1)3144; BE-NEXT: bl lrint3145; BE-NEXT: nop3146; BE-NEXT: xxswapd vs1, v313147; BE-NEXT: std r3, 176(r1)3148; BE-NEXT: bl lrint3149; BE-NEXT: nop3150; BE-NEXT: std r3, 184(r1)3151; BE-NEXT: addi r3, r1, 1283152; BE-NEXT: lxvd2x v2, 0, r33153; BE-NEXT: addi r3, r1, 1443154; BE-NEXT: lxvd2x v3, 0, r33155; BE-NEXT: addi r3, r1, 1603156; BE-NEXT: lxvd2x v4, 0, r33157; BE-NEXT: addi r3, r1, 1763158; BE-NEXT: lxvd2x v5, 0, r33159; BE-NEXT: li r3, 2403160; BE-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload3161; BE-NEXT: li r3, 2243162; BE-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload3163; BE-NEXT: li r3, 2083164; BE-NEXT: lxvd2x v29, r1, r3 # 16-byte Folded Reload3165; BE-NEXT: li r3, 1923166; BE-NEXT: lxvd2x v28, r1, r3 # 16-byte Folded Reload3167; BE-NEXT: addi r1, r1, 2563168; BE-NEXT: ld r0, 16(r1)3169; BE-NEXT: mtlr r03170; BE-NEXT: blr3171;3172; CHECK-LABEL: lrint_v8f64:3173; CHECK: # %bb.0:3174; CHECK-NEXT: mflr r03175; CHECK-NEXT: stdu r1, -112(r1)3176; CHECK-NEXT: li r3, 483177; CHECK-NEXT: std r0, 128(r1)3178; CHECK-NEXT: stxvd2x v28, r1, r3 # 16-byte Folded Spill3179; CHECK-NEXT: li r3, 643180; CHECK-NEXT: vmr v28, v23181; CHECK-NEXT: stxvd2x v29, r1, r3 # 16-byte Folded Spill3182; CHECK-NEXT: li r3, 803183; CHECK-NEXT: xxlor f1, v28, v283184; CHECK-NEXT: vmr v29, v33185; CHECK-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill3186; CHECK-NEXT: li r3, 963187; CHECK-NEXT: vmr v30, v43188; CHECK-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill3189; CHECK-NEXT: vmr v31, v53190; CHECK-NEXT: bl lrint3191; CHECK-NEXT: nop3192; CHECK-NEXT: xxswapd vs1, v283193; CHECK-NEXT: mtvsrd v28, r33194; CHECK-NEXT: bl lrint3195; CHECK-NEXT: nop3196; CHECK-NEXT: mtfprd f0, r33197; CHECK-NEXT: xxlor f1, v29, v293198; CHECK-NEXT: xxmrghd v28, v28, vs03199; CHECK-NEXT: bl lrint3200; CHECK-NEXT: nop3201; CHECK-NEXT: xxswapd vs1, v293202; CHECK-NEXT: mtvsrd v29, r33203; CHECK-NEXT: bl lrint3204; CHECK-NEXT: nop3205; CHECK-NEXT: mtfprd f0, r33206; CHECK-NEXT: xxlor f1, v30, v303207; CHECK-NEXT: xxmrghd v29, v29, vs03208; CHECK-NEXT: bl lrint3209; CHECK-NEXT: nop3210; CHECK-NEXT: xxswapd vs1, v303211; CHECK-NEXT: mtvsrd v30, r33212; CHECK-NEXT: bl lrint3213; CHECK-NEXT: nop3214; CHECK-NEXT: mtfprd f0, r33215; CHECK-NEXT: xxlor f1, v31, v313216; CHECK-NEXT: xxmrghd v30, v30, vs03217; CHECK-NEXT: bl lrint3218; CHECK-NEXT: nop3219; CHECK-NEXT: xxswapd vs1, v313220; CHECK-NEXT: mtvsrd v31, r33221; CHECK-NEXT: bl lrint3222; CHECK-NEXT: nop3223; CHECK-NEXT: mtfprd f0, r33224; CHECK-NEXT: li r3, 963225; CHECK-NEXT: vmr v4, v303226; CHECK-NEXT: vmr v3, v293227; CHECK-NEXT: vmr v2, v283228; CHECK-NEXT: xxmrghd v5, v31, vs03229; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload3230; CHECK-NEXT: li r3, 803231; CHECK-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload3232; CHECK-NEXT: li r3, 643233; CHECK-NEXT: lxvd2x v29, r1, r3 # 16-byte Folded Reload3234; CHECK-NEXT: li r3, 483235; CHECK-NEXT: lxvd2x v28, r1, r3 # 16-byte Folded Reload3236; CHECK-NEXT: addi r1, r1, 1123237; CHECK-NEXT: ld r0, 16(r1)3238; CHECK-NEXT: mtlr r03239; CHECK-NEXT: blr3240 %a = call <8 x i64> @llvm.lrint.v8i64.v8f64(<8 x double> %x)3241 ret <8 x i64> %a3242}3243declare <8 x i64> @llvm.lrint.v8i64.v8f64(<8 x double>)3244 3245define <1 x i64> @lrint_v1f128(<1 x fp128> %x) nounwind {3246; BE-LABEL: lrint_v1f128:3247; BE: # %bb.0:3248; BE-NEXT: mflr r03249; BE-NEXT: stdu r1, -112(r1)3250; BE-NEXT: std r0, 128(r1)3251; BE-NEXT: bl lrintf1283252; BE-NEXT: nop3253; BE-NEXT: addi r1, r1, 1123254; BE-NEXT: ld r0, 16(r1)3255; BE-NEXT: mtlr r03256; BE-NEXT: blr3257;3258; CHECK-LABEL: lrint_v1f128:3259; CHECK: # %bb.0:3260; CHECK-NEXT: mflr r03261; CHECK-NEXT: stdu r1, -32(r1)3262; CHECK-NEXT: std r0, 48(r1)3263; CHECK-NEXT: bl lrintf1283264; CHECK-NEXT: nop3265; CHECK-NEXT: addi r1, r1, 323266; CHECK-NEXT: ld r0, 16(r1)3267; CHECK-NEXT: mtlr r03268; CHECK-NEXT: blr3269 %a = call <1 x i64> @llvm.lrint.v1i64.v1f128(<1 x fp128> %x)3270 ret <1 x i64> %a3271}3272declare <1 x i64> @llvm.lrint.v1i64.v1f128(<1 x fp128>)3273 3274define <2 x i64> @lrint_v2f128(<2 x fp128> %x) nounwind {3275; BE-LABEL: lrint_v2f128:3276; BE: # %bb.0:3277; BE-NEXT: mflr r03278; BE-NEXT: stdu r1, -160(r1)3279; BE-NEXT: li r3, 1443280; BE-NEXT: std r0, 176(r1)3281; BE-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill3282; BE-NEXT: vmr v31, v23283; BE-NEXT: vmr v2, v33284; BE-NEXT: bl lrintf1283285; BE-NEXT: nop3286; BE-NEXT: vmr v2, v313287; BE-NEXT: std r3, 136(r1)3288; BE-NEXT: bl lrintf1283289; BE-NEXT: nop3290; BE-NEXT: std r3, 128(r1)3291; BE-NEXT: addi r3, r1, 1283292; BE-NEXT: lxvd2x v2, 0, r33293; BE-NEXT: li r3, 1443294; BE-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload3295; BE-NEXT: addi r1, r1, 1603296; BE-NEXT: ld r0, 16(r1)3297; BE-NEXT: mtlr r03298; BE-NEXT: blr3299;3300; CHECK-LABEL: lrint_v2f128:3301; CHECK: # %bb.0:3302; CHECK-NEXT: mflr r03303; CHECK-NEXT: stdu r1, -80(r1)3304; CHECK-NEXT: li r3, 483305; CHECK-NEXT: std r0, 96(r1)3306; CHECK-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill3307; CHECK-NEXT: li r3, 643308; CHECK-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill3309; CHECK-NEXT: vmr v31, v33310; CHECK-NEXT: bl lrintf1283311; CHECK-NEXT: nop3312; CHECK-NEXT: vmr v2, v313313; CHECK-NEXT: mtvsrd v30, r33314; CHECK-NEXT: bl lrintf1283315; CHECK-NEXT: nop3316; CHECK-NEXT: mtfprd f0, r33317; CHECK-NEXT: li r3, 643318; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload3319; CHECK-NEXT: li r3, 483320; CHECK-NEXT: xxmrghd v2, vs0, v303321; CHECK-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload3322; CHECK-NEXT: addi r1, r1, 803323; CHECK-NEXT: ld r0, 16(r1)3324; CHECK-NEXT: mtlr r03325; CHECK-NEXT: blr3326 %a = call <2 x i64> @llvm.lrint.v2i64.v2f128(<2 x fp128> %x)3327 ret <2 x i64> %a3328}3329declare <2 x i64> @llvm.lrint.v2i64.v2f128(<2 x fp128>)3330 3331define <4 x i64> @lrint_v4f128(<4 x fp128> %x) nounwind {3332; BE-LABEL: lrint_v4f128:3333; BE: # %bb.0:3334; BE-NEXT: mflr r03335; BE-NEXT: stdu r1, -208(r1)3336; BE-NEXT: li r3, 1603337; BE-NEXT: std r0, 224(r1)3338; BE-NEXT: stxvd2x v29, r1, r3 # 16-byte Folded Spill3339; BE-NEXT: li r3, 1763340; BE-NEXT: vmr v29, v23341; BE-NEXT: vmr v2, v33342; BE-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill3343; BE-NEXT: li r3, 1923344; BE-NEXT: vmr v30, v43345; BE-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill3346; BE-NEXT: vmr v31, v53347; BE-NEXT: bl lrintf1283348; BE-NEXT: nop3349; BE-NEXT: vmr v2, v293350; BE-NEXT: std r3, 136(r1)3351; BE-NEXT: bl lrintf1283352; BE-NEXT: nop3353; BE-NEXT: vmr v2, v313354; BE-NEXT: std r3, 128(r1)3355; BE-NEXT: bl lrintf1283356; BE-NEXT: nop3357; BE-NEXT: vmr v2, v303358; BE-NEXT: std r3, 152(r1)3359; BE-NEXT: bl lrintf1283360; BE-NEXT: nop3361; BE-NEXT: std r3, 144(r1)3362; BE-NEXT: addi r3, r1, 1283363; BE-NEXT: lxvd2x v2, 0, r33364; BE-NEXT: addi r3, r1, 1443365; BE-NEXT: lxvd2x v3, 0, r33366; BE-NEXT: li r3, 1923367; BE-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload3368; BE-NEXT: li r3, 1763369; BE-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload3370; BE-NEXT: li r3, 1603371; BE-NEXT: lxvd2x v29, r1, r3 # 16-byte Folded Reload3372; BE-NEXT: addi r1, r1, 2083373; BE-NEXT: ld r0, 16(r1)3374; BE-NEXT: mtlr r03375; BE-NEXT: blr3376;3377; CHECK-LABEL: lrint_v4f128:3378; CHECK: # %bb.0:3379; CHECK-NEXT: mflr r03380; CHECK-NEXT: stdu r1, -112(r1)3381; CHECK-NEXT: li r3, 483382; CHECK-NEXT: std r0, 128(r1)3383; CHECK-NEXT: stxvd2x v28, r1, r3 # 16-byte Folded Spill3384; CHECK-NEXT: li r3, 643385; CHECK-NEXT: stxvd2x v29, r1, r3 # 16-byte Folded Spill3386; CHECK-NEXT: li r3, 803387; CHECK-NEXT: vmr v29, v33388; CHECK-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill3389; CHECK-NEXT: li r3, 963390; CHECK-NEXT: vmr v30, v43391; CHECK-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill3392; CHECK-NEXT: vmr v31, v53393; CHECK-NEXT: bl lrintf1283394; CHECK-NEXT: nop3395; CHECK-NEXT: vmr v2, v293396; CHECK-NEXT: mtvsrd v28, r33397; CHECK-NEXT: bl lrintf1283398; CHECK-NEXT: nop3399; CHECK-NEXT: mtfprd f0, r33400; CHECK-NEXT: vmr v2, v303401; CHECK-NEXT: xxmrghd v29, vs0, v283402; CHECK-NEXT: bl lrintf1283403; CHECK-NEXT: nop3404; CHECK-NEXT: vmr v2, v313405; CHECK-NEXT: mtvsrd v30, r33406; CHECK-NEXT: bl lrintf1283407; CHECK-NEXT: nop3408; CHECK-NEXT: mtfprd f0, r33409; CHECK-NEXT: li r3, 963410; CHECK-NEXT: vmr v2, v293411; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload3412; CHECK-NEXT: li r3, 803413; CHECK-NEXT: xxmrghd v3, vs0, v303414; CHECK-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload3415; CHECK-NEXT: li r3, 643416; CHECK-NEXT: lxvd2x v29, r1, r3 # 16-byte Folded Reload3417; CHECK-NEXT: li r3, 483418; CHECK-NEXT: lxvd2x v28, r1, r3 # 16-byte Folded Reload3419; CHECK-NEXT: addi r1, r1, 1123420; CHECK-NEXT: ld r0, 16(r1)3421; CHECK-NEXT: mtlr r03422; CHECK-NEXT: blr3423 %a = call <4 x i64> @llvm.lrint.v4i64.v4f128(<4 x fp128> %x)3424 ret <4 x i64> %a3425}3426declare <4 x i64> @llvm.lrint.v4i64.v4f128(<4 x fp128>)3427 3428define <8 x i64> @lrint_v8f128(<8 x fp128> %x) nounwind {3429; BE-LABEL: lrint_v8f128:3430; BE: # %bb.0:3431; BE-NEXT: mflr r03432; BE-NEXT: stdu r1, -304(r1)3433; BE-NEXT: li r3, 1923434; BE-NEXT: std r0, 320(r1)3435; BE-NEXT: stxvd2x v25, r1, r3 # 16-byte Folded Spill3436; BE-NEXT: li r3, 2083437; BE-NEXT: vmr v25, v23438; BE-NEXT: vmr v2, v33439; BE-NEXT: stxvd2x v26, r1, r3 # 16-byte Folded Spill3440; BE-NEXT: li r3, 2243441; BE-NEXT: vmr v26, v43442; BE-NEXT: stxvd2x v27, r1, r3 # 16-byte Folded Spill3443; BE-NEXT: li r3, 2403444; BE-NEXT: vmr v27, v53445; BE-NEXT: stxvd2x v28, r1, r3 # 16-byte Folded Spill3446; BE-NEXT: li r3, 2563447; BE-NEXT: vmr v28, v63448; BE-NEXT: stxvd2x v29, r1, r3 # 16-byte Folded Spill3449; BE-NEXT: li r3, 2723450; BE-NEXT: vmr v29, v73451; BE-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill3452; BE-NEXT: li r3, 2883453; BE-NEXT: vmr v30, v83454; BE-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill3455; BE-NEXT: vmr v31, v93456; BE-NEXT: bl lrintf1283457; BE-NEXT: nop3458; BE-NEXT: vmr v2, v253459; BE-NEXT: std r3, 136(r1)3460; BE-NEXT: bl lrintf1283461; BE-NEXT: nop3462; BE-NEXT: vmr v2, v273463; BE-NEXT: std r3, 128(r1)3464; BE-NEXT: bl lrintf1283465; BE-NEXT: nop3466; BE-NEXT: vmr v2, v263467; BE-NEXT: std r3, 152(r1)3468; BE-NEXT: bl lrintf1283469; BE-NEXT: nop3470; BE-NEXT: vmr v2, v293471; BE-NEXT: std r3, 144(r1)3472; BE-NEXT: bl lrintf1283473; BE-NEXT: nop3474; BE-NEXT: vmr v2, v283475; BE-NEXT: std r3, 168(r1)3476; BE-NEXT: bl lrintf1283477; BE-NEXT: nop3478; BE-NEXT: vmr v2, v313479; BE-NEXT: std r3, 160(r1)3480; BE-NEXT: bl lrintf1283481; BE-NEXT: nop3482; BE-NEXT: vmr v2, v303483; BE-NEXT: std r3, 184(r1)3484; BE-NEXT: bl lrintf1283485; BE-NEXT: nop3486; BE-NEXT: std r3, 176(r1)3487; BE-NEXT: addi r3, r1, 1283488; BE-NEXT: lxvd2x v2, 0, r33489; BE-NEXT: addi r3, r1, 1443490; BE-NEXT: lxvd2x v3, 0, r33491; BE-NEXT: addi r3, r1, 1603492; BE-NEXT: lxvd2x v4, 0, r33493; BE-NEXT: addi r3, r1, 1763494; BE-NEXT: lxvd2x v5, 0, r33495; BE-NEXT: li r3, 2883496; BE-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload3497; BE-NEXT: li r3, 2723498; BE-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload3499; BE-NEXT: li r3, 2563500; BE-NEXT: lxvd2x v29, r1, r3 # 16-byte Folded Reload3501; BE-NEXT: li r3, 2403502; BE-NEXT: lxvd2x v28, r1, r3 # 16-byte Folded Reload3503; BE-NEXT: li r3, 2243504; BE-NEXT: lxvd2x v27, r1, r3 # 16-byte Folded Reload3505; BE-NEXT: li r3, 2083506; BE-NEXT: lxvd2x v26, r1, r3 # 16-byte Folded Reload3507; BE-NEXT: li r3, 1923508; BE-NEXT: lxvd2x v25, r1, r3 # 16-byte Folded Reload3509; BE-NEXT: addi r1, r1, 3043510; BE-NEXT: ld r0, 16(r1)3511; BE-NEXT: mtlr r03512; BE-NEXT: blr3513;3514; CHECK-LABEL: lrint_v8f128:3515; CHECK: # %bb.0:3516; CHECK-NEXT: mflr r03517; CHECK-NEXT: stdu r1, -176(r1)3518; CHECK-NEXT: li r3, 483519; CHECK-NEXT: std r0, 192(r1)3520; CHECK-NEXT: stxvd2x v24, r1, r3 # 16-byte Folded Spill3521; CHECK-NEXT: li r3, 643522; CHECK-NEXT: stxvd2x v25, r1, r3 # 16-byte Folded Spill3523; CHECK-NEXT: li r3, 803524; CHECK-NEXT: vmr v25, v33525; CHECK-NEXT: stxvd2x v26, r1, r3 # 16-byte Folded Spill3526; CHECK-NEXT: li r3, 963527; CHECK-NEXT: vmr v26, v43528; CHECK-NEXT: stxvd2x v27, r1, r3 # 16-byte Folded Spill3529; CHECK-NEXT: li r3, 1123530; CHECK-NEXT: vmr v27, v53531; CHECK-NEXT: stxvd2x v28, r1, r3 # 16-byte Folded Spill3532; CHECK-NEXT: li r3, 1283533; CHECK-NEXT: vmr v28, v63534; CHECK-NEXT: stxvd2x v29, r1, r3 # 16-byte Folded Spill3535; CHECK-NEXT: li r3, 1443536; CHECK-NEXT: vmr v29, v73537; CHECK-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill3538; CHECK-NEXT: li r3, 1603539; CHECK-NEXT: vmr v30, v83540; CHECK-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill3541; CHECK-NEXT: vmr v31, v93542; CHECK-NEXT: bl lrintf1283543; CHECK-NEXT: nop3544; CHECK-NEXT: vmr v2, v253545; CHECK-NEXT: mtvsrd v24, r33546; CHECK-NEXT: bl lrintf1283547; CHECK-NEXT: nop3548; CHECK-NEXT: mtfprd f0, r33549; CHECK-NEXT: vmr v2, v263550; CHECK-NEXT: xxmrghd v25, vs0, v243551; CHECK-NEXT: bl lrintf1283552; CHECK-NEXT: nop3553; CHECK-NEXT: vmr v2, v273554; CHECK-NEXT: mtvsrd v26, r33555; CHECK-NEXT: bl lrintf1283556; CHECK-NEXT: nop3557; CHECK-NEXT: mtfprd f0, r33558; CHECK-NEXT: vmr v2, v283559; CHECK-NEXT: xxmrghd v27, vs0, v263560; CHECK-NEXT: bl lrintf1283561; CHECK-NEXT: nop3562; CHECK-NEXT: vmr v2, v293563; CHECK-NEXT: mtvsrd v28, r33564; CHECK-NEXT: bl lrintf1283565; CHECK-NEXT: nop3566; CHECK-NEXT: mtfprd f0, r33567; CHECK-NEXT: vmr v2, v303568; CHECK-NEXT: xxmrghd v29, vs0, v283569; CHECK-NEXT: bl lrintf1283570; CHECK-NEXT: nop3571; CHECK-NEXT: vmr v2, v313572; CHECK-NEXT: mtvsrd v30, r33573; CHECK-NEXT: bl lrintf1283574; CHECK-NEXT: nop3575; CHECK-NEXT: mtfprd f0, r33576; CHECK-NEXT: li r3, 1603577; CHECK-NEXT: vmr v4, v293578; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload3579; CHECK-NEXT: li r3, 1443580; CHECK-NEXT: vmr v3, v273581; CHECK-NEXT: vmr v2, v253582; CHECK-NEXT: xxmrghd v5, vs0, v303583; CHECK-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload3584; CHECK-NEXT: li r3, 1283585; CHECK-NEXT: lxvd2x v29, r1, r3 # 16-byte Folded Reload3586; CHECK-NEXT: li r3, 1123587; CHECK-NEXT: lxvd2x v28, r1, r3 # 16-byte Folded Reload3588; CHECK-NEXT: li r3, 963589; CHECK-NEXT: lxvd2x v27, r1, r3 # 16-byte Folded Reload3590; CHECK-NEXT: li r3, 803591; CHECK-NEXT: lxvd2x v26, r1, r3 # 16-byte Folded Reload3592; CHECK-NEXT: li r3, 643593; CHECK-NEXT: lxvd2x v25, r1, r3 # 16-byte Folded Reload3594; CHECK-NEXT: li r3, 483595; CHECK-NEXT: lxvd2x v24, r1, r3 # 16-byte Folded Reload3596; CHECK-NEXT: addi r1, r1, 1763597; CHECK-NEXT: ld r0, 16(r1)3598; CHECK-NEXT: mtlr r03599; CHECK-NEXT: blr3600 %a = call <8 x i64> @llvm.lrint.v8i64.v8f128(<8 x fp128> %x)3601 ret <8 x i64> %a3602}3603declare <8 x i64> @llvm.lrint.v8i64.v8f128(<8 x fp128>)3604 3605define <16 x i64> @lrint_v16i64_v16f128(<16 x fp128> %x) nounwind {3606; BE-LABEL: lrint_v16i64_v16f128:3607; BE: # %bb.0:3608; BE-NEXT: mflr r03609; BE-NEXT: stdu r1, -496(r1)3610; BE-NEXT: li r3, 3043611; BE-NEXT: std r0, 512(r1)3612; BE-NEXT: stxvd2x v20, r1, r3 # 16-byte Folded Spill3613; BE-NEXT: li r3, 3203614; BE-NEXT: stxvd2x v21, r1, r3 # 16-byte Folded Spill3615; BE-NEXT: li r3, 3363616; BE-NEXT: vmr v21, v23617; BE-NEXT: vmr v2, v33618; BE-NEXT: stxvd2x v22, r1, r3 # 16-byte Folded Spill3619; BE-NEXT: li r3, 3523620; BE-NEXT: vmr v22, v43621; BE-NEXT: stxvd2x v23, r1, r3 # 16-byte Folded Spill3622; BE-NEXT: li r3, 3683623; BE-NEXT: vmr v23, v53624; BE-NEXT: stxvd2x v24, r1, r3 # 16-byte Folded Spill3625; BE-NEXT: li r3, 3843626; BE-NEXT: vmr v24, v63627; BE-NEXT: stxvd2x v25, r1, r3 # 16-byte Folded Spill3628; BE-NEXT: li r3, 4003629; BE-NEXT: vmr v25, v73630; BE-NEXT: stxvd2x v26, r1, r3 # 16-byte Folded Spill3631; BE-NEXT: li r3, 4163632; BE-NEXT: vmr v26, v83633; BE-NEXT: stxvd2x v27, r1, r3 # 16-byte Folded Spill3634; BE-NEXT: li r3, 4323635; BE-NEXT: vmr v27, v93636; BE-NEXT: stxvd2x v28, r1, r3 # 16-byte Folded Spill3637; BE-NEXT: li r3, 4483638; BE-NEXT: vmr v28, v113639; BE-NEXT: stxvd2x v29, r1, r3 # 16-byte Folded Spill3640; BE-NEXT: li r3, 4643641; BE-NEXT: vmr v29, v103642; BE-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill3643; BE-NEXT: li r3, 4803644; BE-NEXT: vmr v30, v133645; BE-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill3646; BE-NEXT: li r3, 1283647; BE-NEXT: stxvd2x v12, r1, r3 # 16-byte Folded Spill3648; BE-NEXT: addi r3, r1, 7683649; BE-NEXT: lxvw4x vs0, 0, r33650; BE-NEXT: li r3, 1603651; BE-NEXT: stxvd2x vs0, r1, r3 # 16-byte Folded Spill3652; BE-NEXT: addi r3, r1, 7843653; BE-NEXT: lxvw4x vs0, 0, r33654; BE-NEXT: li r3, 1443655; BE-NEXT: stxvd2x vs0, r1, r3 # 16-byte Folded Spill3656; BE-NEXT: addi r3, r1, 7363657; BE-NEXT: lxvw4x v20, 0, r33658; BE-NEXT: addi r3, r1, 7523659; BE-NEXT: lxvw4x v31, 0, r33660; BE-NEXT: bl lrintf1283661; BE-NEXT: nop3662; BE-NEXT: vmr v2, v213663; BE-NEXT: std r3, 184(r1)3664; BE-NEXT: bl lrintf1283665; BE-NEXT: nop3666; BE-NEXT: vmr v2, v233667; BE-NEXT: std r3, 176(r1)3668; BE-NEXT: bl lrintf1283669; BE-NEXT: nop3670; BE-NEXT: vmr v2, v223671; BE-NEXT: std r3, 200(r1)3672; BE-NEXT: bl lrintf1283673; BE-NEXT: nop3674; BE-NEXT: vmr v2, v253675; BE-NEXT: std r3, 192(r1)3676; BE-NEXT: bl lrintf1283677; BE-NEXT: nop3678; BE-NEXT: vmr v2, v243679; BE-NEXT: std r3, 216(r1)3680; BE-NEXT: bl lrintf1283681; BE-NEXT: nop3682; BE-NEXT: vmr v2, v273683; BE-NEXT: std r3, 208(r1)3684; BE-NEXT: bl lrintf1283685; BE-NEXT: nop3686; BE-NEXT: vmr v2, v263687; BE-NEXT: std r3, 232(r1)3688; BE-NEXT: bl lrintf1283689; BE-NEXT: nop3690; BE-NEXT: vmr v2, v283691; BE-NEXT: std r3, 224(r1)3692; BE-NEXT: bl lrintf1283693; BE-NEXT: nop3694; BE-NEXT: vmr v2, v293695; BE-NEXT: std r3, 248(r1)3696; BE-NEXT: bl lrintf1283697; BE-NEXT: nop3698; BE-NEXT: vmr v2, v303699; BE-NEXT: std r3, 240(r1)3700; BE-NEXT: bl lrintf1283701; BE-NEXT: nop3702; BE-NEXT: std r3, 264(r1)3703; BE-NEXT: li r3, 1283704; BE-NEXT: lxvd2x v2, r1, r3 # 16-byte Folded Reload3705; BE-NEXT: bl lrintf1283706; BE-NEXT: nop3707; BE-NEXT: vmr v2, v313708; BE-NEXT: std r3, 256(r1)3709; BE-NEXT: bl lrintf1283710; BE-NEXT: nop3711; BE-NEXT: vmr v2, v203712; BE-NEXT: std r3, 280(r1)3713; BE-NEXT: bl lrintf1283714; BE-NEXT: nop3715; BE-NEXT: std r3, 272(r1)3716; BE-NEXT: li r3, 1443717; BE-NEXT: lxvd2x v2, r1, r3 # 16-byte Folded Reload3718; BE-NEXT: bl lrintf1283719; BE-NEXT: nop3720; BE-NEXT: std r3, 296(r1)3721; BE-NEXT: li r3, 1603722; BE-NEXT: lxvd2x v2, r1, r3 # 16-byte Folded Reload3723; BE-NEXT: bl lrintf1283724; BE-NEXT: nop3725; BE-NEXT: std r3, 288(r1)3726; BE-NEXT: addi r3, r1, 1763727; BE-NEXT: lxvd2x v2, 0, r33728; BE-NEXT: addi r3, r1, 1923729; BE-NEXT: lxvd2x v3, 0, r33730; BE-NEXT: addi r3, r1, 2083731; BE-NEXT: lxvd2x v4, 0, r33732; BE-NEXT: addi r3, r1, 2243733; BE-NEXT: lxvd2x v5, 0, r33734; BE-NEXT: addi r3, r1, 2403735; BE-NEXT: lxvd2x v6, 0, r33736; BE-NEXT: addi r3, r1, 2563737; BE-NEXT: lxvd2x v7, 0, r33738; BE-NEXT: addi r3, r1, 2723739; BE-NEXT: lxvd2x v8, 0, r33740; BE-NEXT: addi r3, r1, 2883741; BE-NEXT: lxvd2x v9, 0, r33742; BE-NEXT: li r3, 4803743; BE-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload3744; BE-NEXT: li r3, 4643745; BE-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload3746; BE-NEXT: li r3, 4483747; BE-NEXT: lxvd2x v29, r1, r3 # 16-byte Folded Reload3748; BE-NEXT: li r3, 4323749; BE-NEXT: lxvd2x v28, r1, r3 # 16-byte Folded Reload3750; BE-NEXT: li r3, 4163751; BE-NEXT: lxvd2x v27, r1, r3 # 16-byte Folded Reload3752; BE-NEXT: li r3, 4003753; BE-NEXT: lxvd2x v26, r1, r3 # 16-byte Folded Reload3754; BE-NEXT: li r3, 3843755; BE-NEXT: lxvd2x v25, r1, r3 # 16-byte Folded Reload3756; BE-NEXT: li r3, 3683757; BE-NEXT: lxvd2x v24, r1, r3 # 16-byte Folded Reload3758; BE-NEXT: li r3, 3523759; BE-NEXT: lxvd2x v23, r1, r3 # 16-byte Folded Reload3760; BE-NEXT: li r3, 3363761; BE-NEXT: lxvd2x v22, r1, r3 # 16-byte Folded Reload3762; BE-NEXT: li r3, 3203763; BE-NEXT: lxvd2x v21, r1, r3 # 16-byte Folded Reload3764; BE-NEXT: li r3, 3043765; BE-NEXT: lxvd2x v20, r1, r3 # 16-byte Folded Reload3766; BE-NEXT: addi r1, r1, 4963767; BE-NEXT: ld r0, 16(r1)3768; BE-NEXT: mtlr r03769; BE-NEXT: blr3770;3771; CHECK-LABEL: lrint_v16i64_v16f128:3772; CHECK: # %bb.0:3773; CHECK-NEXT: mflr r03774; CHECK-NEXT: stdu r1, -304(r1)3775; CHECK-NEXT: li r3, 1123776; CHECK-NEXT: std r0, 320(r1)3777; CHECK-NEXT: stxvd2x v20, r1, r3 # 16-byte Folded Spill3778; CHECK-NEXT: li r3, 1283779; CHECK-NEXT: stxvd2x v21, r1, r3 # 16-byte Folded Spill3780; CHECK-NEXT: li r3, 1443781; CHECK-NEXT: vmr v21, v43782; CHECK-NEXT: stxvd2x v22, r1, r3 # 16-byte Folded Spill3783; CHECK-NEXT: li r3, 1603784; CHECK-NEXT: vmr v22, v63785; CHECK-NEXT: stxvd2x v23, r1, r3 # 16-byte Folded Spill3786; CHECK-NEXT: li r3, 1763787; CHECK-NEXT: vmr v23, v83788; CHECK-NEXT: stxvd2x v24, r1, r3 # 16-byte Folded Spill3789; CHECK-NEXT: li r3, 1923790; CHECK-NEXT: vmr v24, v93791; CHECK-NEXT: stxvd2x v25, r1, r3 # 16-byte Folded Spill3792; CHECK-NEXT: li r3, 2083793; CHECK-NEXT: vmr v25, v73794; CHECK-NEXT: stxvd2x v26, r1, r3 # 16-byte Folded Spill3795; CHECK-NEXT: li r3, 2243796; CHECK-NEXT: vmr v26, v103797; CHECK-NEXT: stxvd2x v27, r1, r3 # 16-byte Folded Spill3798; CHECK-NEXT: li r3, 2403799; CHECK-NEXT: vmr v27, v53800; CHECK-NEXT: stxvd2x v28, r1, r3 # 16-byte Folded Spill3801; CHECK-NEXT: li r3, 2563802; CHECK-NEXT: vmr v28, v113803; CHECK-NEXT: stxvd2x v29, r1, r3 # 16-byte Folded Spill3804; CHECK-NEXT: li r3, 2723805; CHECK-NEXT: vmr v29, v123806; CHECK-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill3807; CHECK-NEXT: li r3, 2883808; CHECK-NEXT: vmr v30, v33809; CHECK-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill3810; CHECK-NEXT: li r3, 643811; CHECK-NEXT: stxvd2x v13, r1, r3 # 16-byte Folded Spill3812; CHECK-NEXT: addi r3, r1, 5763813; CHECK-NEXT: lxvd2x vs0, 0, r33814; CHECK-NEXT: addi r3, r1, 5603815; CHECK-NEXT: lxvd2x vs1, 0, r33816; CHECK-NEXT: addi r3, r1, 5443817; CHECK-NEXT: lxvd2x vs2, 0, r33818; CHECK-NEXT: li r3, 963819; CHECK-NEXT: xxswapd vs0, vs03820; CHECK-NEXT: stxvd2x vs0, r1, r3 # 16-byte Folded Spill3821; CHECK-NEXT: li r3, 803822; CHECK-NEXT: xxswapd vs0, vs13823; CHECK-NEXT: stxvd2x vs0, r1, r3 # 16-byte Folded Spill3824; CHECK-NEXT: li r3, 483825; CHECK-NEXT: xxswapd vs0, vs23826; CHECK-NEXT: stxvd2x vs0, r1, r3 # 16-byte Folded Spill3827; CHECK-NEXT: addi r3, r1, 5283828; CHECK-NEXT: lxvd2x vs0, 0, r33829; CHECK-NEXT: xxswapd v31, vs03830; CHECK-NEXT: bl lrintf1283831; CHECK-NEXT: nop3832; CHECK-NEXT: vmr v2, v303833; CHECK-NEXT: mtvsrd v20, r33834; CHECK-NEXT: bl lrintf1283835; CHECK-NEXT: nop3836; CHECK-NEXT: mtfprd f0, r33837; CHECK-NEXT: vmr v2, v213838; CHECK-NEXT: xxmrghd v30, vs0, v203839; CHECK-NEXT: bl lrintf1283840; CHECK-NEXT: nop3841; CHECK-NEXT: vmr v2, v273842; CHECK-NEXT: mtvsrd v21, r33843; CHECK-NEXT: bl lrintf1283844; CHECK-NEXT: nop3845; CHECK-NEXT: mtfprd f0, r33846; CHECK-NEXT: vmr v2, v223847; CHECK-NEXT: xxmrghd v27, vs0, v213848; CHECK-NEXT: bl lrintf1283849; CHECK-NEXT: nop3850; CHECK-NEXT: vmr v2, v253851; CHECK-NEXT: mtvsrd v22, r33852; CHECK-NEXT: bl lrintf1283853; CHECK-NEXT: nop3854; CHECK-NEXT: mtfprd f0, r33855; CHECK-NEXT: vmr v2, v233856; CHECK-NEXT: xxmrghd v25, vs0, v223857; CHECK-NEXT: bl lrintf1283858; CHECK-NEXT: nop3859; CHECK-NEXT: vmr v2, v243860; CHECK-NEXT: mtvsrd v23, r33861; CHECK-NEXT: bl lrintf1283862; CHECK-NEXT: nop3863; CHECK-NEXT: mtfprd f0, r33864; CHECK-NEXT: vmr v2, v263865; CHECK-NEXT: xxmrghd v24, vs0, v233866; CHECK-NEXT: bl lrintf1283867; CHECK-NEXT: nop3868; CHECK-NEXT: vmr v2, v283869; CHECK-NEXT: mtvsrd v26, r33870; CHECK-NEXT: bl lrintf1283871; CHECK-NEXT: nop3872; CHECK-NEXT: mtfprd f0, r33873; CHECK-NEXT: vmr v2, v293874; CHECK-NEXT: xxmrghd v28, vs0, v263875; CHECK-NEXT: bl lrintf1283876; CHECK-NEXT: nop3877; CHECK-NEXT: mtvsrd v29, r33878; CHECK-NEXT: li r3, 643879; CHECK-NEXT: lxvd2x v2, r1, r3 # 16-byte Folded Reload3880; CHECK-NEXT: bl lrintf1283881; CHECK-NEXT: nop3882; CHECK-NEXT: mtfprd f0, r33883; CHECK-NEXT: vmr v2, v313884; CHECK-NEXT: xxmrghd v29, vs0, v293885; CHECK-NEXT: bl lrintf1283886; CHECK-NEXT: nop3887; CHECK-NEXT: mtvsrd v31, r33888; CHECK-NEXT: li r3, 483889; CHECK-NEXT: lxvd2x v2, r1, r3 # 16-byte Folded Reload3890; CHECK-NEXT: bl lrintf1283891; CHECK-NEXT: nop3892; CHECK-NEXT: mtfprd f0, r33893; CHECK-NEXT: li r3, 803894; CHECK-NEXT: lxvd2x v2, r1, r3 # 16-byte Folded Reload3895; CHECK-NEXT: xxmrghd v31, vs0, v313896; CHECK-NEXT: bl lrintf1283897; CHECK-NEXT: nop3898; CHECK-NEXT: mtvsrd v26, r33899; CHECK-NEXT: li r3, 963900; CHECK-NEXT: lxvd2x v2, r1, r3 # 16-byte Folded Reload3901; CHECK-NEXT: bl lrintf1283902; CHECK-NEXT: nop3903; CHECK-NEXT: mtfprd f0, r33904; CHECK-NEXT: li r3, 2883905; CHECK-NEXT: vmr v8, v313906; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload3907; CHECK-NEXT: li r3, 2723908; CHECK-NEXT: vmr v2, v303909; CHECK-NEXT: vmr v7, v293910; CHECK-NEXT: vmr v6, v283911; CHECK-NEXT: vmr v3, v273912; CHECK-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload3913; CHECK-NEXT: li r3, 2563914; CHECK-NEXT: vmr v4, v253915; CHECK-NEXT: vmr v5, v243916; CHECK-NEXT: lxvd2x v29, r1, r3 # 16-byte Folded Reload3917; CHECK-NEXT: li r3, 2403918; CHECK-NEXT: lxvd2x v28, r1, r3 # 16-byte Folded Reload3919; CHECK-NEXT: li r3, 2243920; CHECK-NEXT: lxvd2x v27, r1, r3 # 16-byte Folded Reload3921; CHECK-NEXT: li r3, 2083922; CHECK-NEXT: xxmrghd v9, vs0, v263923; CHECK-NEXT: lxvd2x v26, r1, r3 # 16-byte Folded Reload3924; CHECK-NEXT: li r3, 1923925; CHECK-NEXT: lxvd2x v25, r1, r3 # 16-byte Folded Reload3926; CHECK-NEXT: li r3, 1763927; CHECK-NEXT: lxvd2x v24, r1, r3 # 16-byte Folded Reload3928; CHECK-NEXT: li r3, 1603929; CHECK-NEXT: lxvd2x v23, r1, r3 # 16-byte Folded Reload3930; CHECK-NEXT: li r3, 1443931; CHECK-NEXT: lxvd2x v22, r1, r3 # 16-byte Folded Reload3932; CHECK-NEXT: li r3, 1283933; CHECK-NEXT: lxvd2x v21, r1, r3 # 16-byte Folded Reload3934; CHECK-NEXT: li r3, 1123935; CHECK-NEXT: lxvd2x v20, r1, r3 # 16-byte Folded Reload3936; CHECK-NEXT: addi r1, r1, 3043937; CHECK-NEXT: ld r0, 16(r1)3938; CHECK-NEXT: mtlr r03939; CHECK-NEXT: blr3940 %a = call <16 x i64> @llvm.lrint.v16i64.v16f128(<16 x fp128> %x)3941 ret <16 x i64> %a3942}3943declare <16 x i64> @llvm.lrint.v16i64.v16f128(<16 x fp128>)3944