3594 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: llc -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \4; SKIP: -mtriple=powerpc-unknown-unknown -verify-machineinstrs < %s | \5; SKIP: FileCheck %s --check-prefix=PPC326; RUN: llc -mcpu=pwr7 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \7; RUN: -mtriple=powerpc64-unknown-unknown -verify-machineinstrs < %s | \8; RUN: FileCheck %s --check-prefix=BE9; RUN: llc -mcpu=pwr8 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \10; RUN: -mtriple=powerpc64le-unknown-unknown -verify-machineinstrs < %s | \11; RUN: FileCheck %s12 13define <1 x i64> @llrint_v1i64_v1f16(<1 x half> %x) nounwind {14; BE-LABEL: llrint_v1i64_v1f16:15; BE: # %bb.0:16; BE-NEXT: mflr r017; BE-NEXT: stdu r1, -112(r1)18; BE-NEXT: std r0, 128(r1)19; BE-NEXT: bl __truncsfhf220; BE-NEXT: nop21; BE-NEXT: clrldi r3, r3, 4822; BE-NEXT: bl __extendhfsf223; BE-NEXT: nop24; BE-NEXT: bl llrintf25; BE-NEXT: nop26; BE-NEXT: addi r1, r1, 11227; BE-NEXT: ld r0, 16(r1)28; BE-NEXT: mtlr r029; BE-NEXT: blr30;31; CHECK-LABEL: llrint_v1i64_v1f16:32; CHECK: # %bb.0:33; CHECK-NEXT: mflr r034; CHECK-NEXT: stdu r1, -32(r1)35; CHECK-NEXT: std r0, 48(r1)36; CHECK-NEXT: bl __truncsfhf237; CHECK-NEXT: nop38; CHECK-NEXT: clrldi r3, r3, 4839; CHECK-NEXT: bl __extendhfsf240; CHECK-NEXT: nop41; CHECK-NEXT: bl llrintf42; CHECK-NEXT: nop43; CHECK-NEXT: addi r1, r1, 3244; CHECK-NEXT: ld r0, 16(r1)45; CHECK-NEXT: mtlr r046; CHECK-NEXT: blr47 %a = call <1 x i64> @llvm.llrint.v1i64.v1f16(<1 x half> %x)48 ret <1 x i64> %a49}50declare <1 x i64> @llvm.llrint.v1i64.v1f16(<1 x half>)51 52define <2 x i64> @llrint_v1i64_v2f16(<2 x half> %x) nounwind {53; BE-LABEL: llrint_v1i64_v2f16:54; BE: # %bb.0:55; BE-NEXT: mflr r056; BE-NEXT: stdu r1, -160(r1)57; BE-NEXT: std r0, 176(r1)58; BE-NEXT: stfd f31, 152(r1) # 8-byte Folded Spill59; BE-NEXT: fmr f31, f160; BE-NEXT: fmr f1, f261; BE-NEXT: std r30, 136(r1) # 8-byte Folded Spill62; BE-NEXT: bl __truncsfhf263; BE-NEXT: nop64; BE-NEXT: fmr f1, f3165; BE-NEXT: mr r30, r366; BE-NEXT: bl __truncsfhf267; BE-NEXT: nop68; BE-NEXT: clrldi r3, r3, 4869; BE-NEXT: bl __extendhfsf270; BE-NEXT: nop71; BE-NEXT: clrldi r3, r30, 4872; BE-NEXT: fmr f31, f173; BE-NEXT: bl __extendhfsf274; BE-NEXT: nop75; BE-NEXT: bl llrintf76; BE-NEXT: nop77; BE-NEXT: fmr f1, f3178; BE-NEXT: std r3, 120(r1)79; BE-NEXT: bl llrintf80; BE-NEXT: nop81; BE-NEXT: std r3, 112(r1)82; BE-NEXT: addi r3, r1, 11283; BE-NEXT: ld r30, 136(r1) # 8-byte Folded Reload84; BE-NEXT: lfd f31, 152(r1) # 8-byte Folded Reload85; BE-NEXT: lxvd2x v2, 0, r386; BE-NEXT: addi r1, r1, 16087; BE-NEXT: ld r0, 16(r1)88; BE-NEXT: mtlr r089; BE-NEXT: blr90;91; CHECK-LABEL: llrint_v1i64_v2f16:92; CHECK: # %bb.0:93; CHECK-NEXT: mflr r094; CHECK-NEXT: stdu r1, -96(r1)95; CHECK-NEXT: li r3, 4896; CHECK-NEXT: std r0, 112(r1)97; CHECK-NEXT: std r30, 72(r1) # 8-byte Folded Spill98; CHECK-NEXT: stfd f31, 88(r1) # 8-byte Folded Spill99; CHECK-NEXT: fmr f31, f2100; CHECK-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill101; CHECK-NEXT: bl __truncsfhf2102; CHECK-NEXT: nop103; CHECK-NEXT: fmr f1, f31104; CHECK-NEXT: mr r30, r3105; CHECK-NEXT: bl __truncsfhf2106; CHECK-NEXT: nop107; CHECK-NEXT: clrldi r3, r3, 48108; CHECK-NEXT: bl __extendhfsf2109; CHECK-NEXT: nop110; CHECK-NEXT: clrldi r3, r30, 48111; CHECK-NEXT: fmr f31, f1112; CHECK-NEXT: bl __extendhfsf2113; CHECK-NEXT: nop114; CHECK-NEXT: bl llrintf115; CHECK-NEXT: nop116; CHECK-NEXT: fmr f1, f31117; CHECK-NEXT: mtvsrd v31, r3118; CHECK-NEXT: bl llrintf119; CHECK-NEXT: nop120; CHECK-NEXT: mtfprd f0, r3121; CHECK-NEXT: li r3, 48122; CHECK-NEXT: lfd f31, 88(r1) # 8-byte Folded Reload123; CHECK-NEXT: ld r30, 72(r1) # 8-byte Folded Reload124; CHECK-NEXT: xxmrghd v2, vs0, v31125; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload126; CHECK-NEXT: addi r1, r1, 96127; CHECK-NEXT: ld r0, 16(r1)128; CHECK-NEXT: mtlr r0129; CHECK-NEXT: blr130 %a = call <2 x i64> @llvm.llrint.v2i64.v2f16(<2 x half> %x)131 ret <2 x i64> %a132}133declare <2 x i64> @llvm.llrint.v2i64.v2f16(<2 x half>)134 135define <4 x i64> @llrint_v4i64_v4f16(<4 x half> %x) nounwind {136; BE-LABEL: llrint_v4i64_v4f16:137; BE: # %bb.0:138; BE-NEXT: mflr r0139; BE-NEXT: stdu r1, -208(r1)140; BE-NEXT: std r0, 224(r1)141; BE-NEXT: stfd f29, 184(r1) # 8-byte Folded Spill142; BE-NEXT: fmr f29, f1143; BE-NEXT: fmr f1, f2144; BE-NEXT: std r28, 152(r1) # 8-byte Folded Spill145; BE-NEXT: std r29, 160(r1) # 8-byte Folded Spill146; BE-NEXT: std r30, 168(r1) # 8-byte Folded Spill147; BE-NEXT: stfd f30, 192(r1) # 8-byte Folded Spill148; BE-NEXT: stfd f31, 200(r1) # 8-byte Folded Spill149; BE-NEXT: fmr f31, f4150; BE-NEXT: fmr f30, f3151; BE-NEXT: bl __truncsfhf2152; BE-NEXT: nop153; BE-NEXT: fmr f1, f29154; BE-NEXT: mr r30, r3155; BE-NEXT: bl __truncsfhf2156; BE-NEXT: nop157; BE-NEXT: fmr f1, f31158; BE-NEXT: mr r29, r3159; BE-NEXT: bl __truncsfhf2160; BE-NEXT: nop161; BE-NEXT: fmr f1, f30162; BE-NEXT: mr r28, r3163; BE-NEXT: bl __truncsfhf2164; BE-NEXT: nop165; BE-NEXT: clrldi r3, r3, 48166; BE-NEXT: bl __extendhfsf2167; BE-NEXT: nop168; BE-NEXT: clrldi r3, r28, 48169; BE-NEXT: fmr f31, f1170; BE-NEXT: bl __extendhfsf2171; BE-NEXT: nop172; BE-NEXT: clrldi r3, r29, 48173; BE-NEXT: fmr f30, f1174; BE-NEXT: bl __extendhfsf2175; BE-NEXT: nop176; BE-NEXT: clrldi r3, r30, 48177; BE-NEXT: fmr f29, f1178; BE-NEXT: bl __extendhfsf2179; BE-NEXT: nop180; BE-NEXT: bl llrintf181; BE-NEXT: nop182; BE-NEXT: fmr f1, f29183; BE-NEXT: std r3, 120(r1)184; BE-NEXT: bl llrintf185; BE-NEXT: nop186; BE-NEXT: fmr f1, f30187; BE-NEXT: std r3, 112(r1)188; BE-NEXT: bl llrintf189; BE-NEXT: nop190; BE-NEXT: fmr f1, f31191; BE-NEXT: std r3, 136(r1)192; BE-NEXT: bl llrintf193; BE-NEXT: nop194; BE-NEXT: std r3, 128(r1)195; BE-NEXT: addi r3, r1, 112196; BE-NEXT: ld r30, 168(r1) # 8-byte Folded Reload197; BE-NEXT: lfd f31, 200(r1) # 8-byte Folded Reload198; BE-NEXT: lfd f30, 192(r1) # 8-byte Folded Reload199; BE-NEXT: lfd f29, 184(r1) # 8-byte Folded Reload200; BE-NEXT: lxvd2x v2, 0, r3201; BE-NEXT: addi r3, r1, 128202; BE-NEXT: ld r29, 160(r1) # 8-byte Folded Reload203; BE-NEXT: ld r28, 152(r1) # 8-byte Folded Reload204; BE-NEXT: lxvd2x v3, 0, r3205; BE-NEXT: addi r1, r1, 208206; BE-NEXT: ld r0, 16(r1)207; BE-NEXT: mtlr r0208; BE-NEXT: blr209;210; CHECK-LABEL: llrint_v4i64_v4f16:211; CHECK: # %bb.0:212; CHECK-NEXT: mflr r0213; CHECK-NEXT: stdu r1, -144(r1)214; CHECK-NEXT: li r3, 48215; CHECK-NEXT: std r0, 160(r1)216; CHECK-NEXT: std r28, 88(r1) # 8-byte Folded Spill217; CHECK-NEXT: std r29, 96(r1) # 8-byte Folded Spill218; CHECK-NEXT: std r30, 104(r1) # 8-byte Folded Spill219; CHECK-NEXT: stfd f29, 120(r1) # 8-byte Folded Spill220; CHECK-NEXT: fmr f29, f2221; CHECK-NEXT: stfd f30, 128(r1) # 8-byte Folded Spill222; CHECK-NEXT: fmr f30, f3223; CHECK-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill224; CHECK-NEXT: li r3, 64225; CHECK-NEXT: stfd f31, 136(r1) # 8-byte Folded Spill226; CHECK-NEXT: fmr f31, f4227; CHECK-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill228; CHECK-NEXT: bl __truncsfhf2229; CHECK-NEXT: nop230; CHECK-NEXT: fmr f1, f29231; CHECK-NEXT: mr r30, r3232; CHECK-NEXT: bl __truncsfhf2233; CHECK-NEXT: nop234; CHECK-NEXT: fmr f1, f30235; CHECK-NEXT: mr r29, r3236; CHECK-NEXT: bl __truncsfhf2237; CHECK-NEXT: nop238; CHECK-NEXT: fmr f1, f31239; CHECK-NEXT: mr r28, r3240; CHECK-NEXT: bl __truncsfhf2241; CHECK-NEXT: nop242; CHECK-NEXT: clrldi r3, r3, 48243; CHECK-NEXT: bl __extendhfsf2244; CHECK-NEXT: nop245; CHECK-NEXT: clrldi r3, r28, 48246; CHECK-NEXT: fmr f31, f1247; CHECK-NEXT: bl __extendhfsf2248; CHECK-NEXT: nop249; CHECK-NEXT: clrldi r3, r29, 48250; CHECK-NEXT: fmr f30, f1251; CHECK-NEXT: bl __extendhfsf2252; CHECK-NEXT: nop253; CHECK-NEXT: clrldi r3, r30, 48254; CHECK-NEXT: fmr f29, f1255; CHECK-NEXT: bl __extendhfsf2256; CHECK-NEXT: nop257; CHECK-NEXT: bl llrintf258; CHECK-NEXT: nop259; CHECK-NEXT: fmr f1, f29260; CHECK-NEXT: mtvsrd v31, r3261; CHECK-NEXT: bl llrintf262; CHECK-NEXT: nop263; CHECK-NEXT: fmr f1, f30264; CHECK-NEXT: mtfprd f0, r3265; CHECK-NEXT: xxmrghd v31, vs0, v31266; CHECK-NEXT: bl llrintf267; CHECK-NEXT: nop268; CHECK-NEXT: fmr f1, f31269; CHECK-NEXT: mtvsrd v30, r3270; CHECK-NEXT: bl llrintf271; CHECK-NEXT: nop272; CHECK-NEXT: mtfprd f0, r3273; CHECK-NEXT: li r3, 64274; CHECK-NEXT: vmr v2, v31275; CHECK-NEXT: lfd f31, 136(r1) # 8-byte Folded Reload276; CHECK-NEXT: lfd f30, 128(r1) # 8-byte Folded Reload277; CHECK-NEXT: lfd f29, 120(r1) # 8-byte Folded Reload278; CHECK-NEXT: ld r30, 104(r1) # 8-byte Folded Reload279; CHECK-NEXT: ld r29, 96(r1) # 8-byte Folded Reload280; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload281; CHECK-NEXT: li r3, 48282; CHECK-NEXT: ld r28, 88(r1) # 8-byte Folded Reload283; CHECK-NEXT: xxmrghd v3, vs0, v30284; CHECK-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload285; CHECK-NEXT: addi r1, r1, 144286; CHECK-NEXT: ld r0, 16(r1)287; CHECK-NEXT: mtlr r0288; CHECK-NEXT: blr289 %a = call <4 x i64> @llvm.llrint.v4i64.v4f16(<4 x half> %x)290 ret <4 x i64> %a291}292declare <4 x i64> @llvm.llrint.v4i64.v4f16(<4 x half>)293 294define <8 x i64> @llrint_v8i64_v8f16(<8 x half> %x) nounwind {295; BE-LABEL: llrint_v8i64_v8f16:296; BE: # %bb.0:297; BE-NEXT: mflr r0298; BE-NEXT: stdu r1, -304(r1)299; BE-NEXT: std r0, 320(r1)300; BE-NEXT: stfd f25, 248(r1) # 8-byte Folded Spill301; BE-NEXT: fmr f25, f1302; BE-NEXT: fmr f1, f2303; BE-NEXT: std r24, 184(r1) # 8-byte Folded Spill304; BE-NEXT: std r25, 192(r1) # 8-byte Folded Spill305; BE-NEXT: std r26, 200(r1) # 8-byte Folded Spill306; BE-NEXT: std r27, 208(r1) # 8-byte Folded Spill307; BE-NEXT: std r28, 216(r1) # 8-byte Folded Spill308; BE-NEXT: std r29, 224(r1) # 8-byte Folded Spill309; BE-NEXT: std r30, 232(r1) # 8-byte Folded Spill310; BE-NEXT: stfd f26, 256(r1) # 8-byte Folded Spill311; BE-NEXT: stfd f27, 264(r1) # 8-byte Folded Spill312; BE-NEXT: stfd f28, 272(r1) # 8-byte Folded Spill313; BE-NEXT: stfd f29, 280(r1) # 8-byte Folded Spill314; BE-NEXT: stfd f30, 288(r1) # 8-byte Folded Spill315; BE-NEXT: stfd f31, 296(r1) # 8-byte Folded Spill316; BE-NEXT: fmr f31, f8317; BE-NEXT: fmr f30, f7318; BE-NEXT: fmr f29, f6319; BE-NEXT: fmr f28, f5320; BE-NEXT: fmr f27, f4321; BE-NEXT: fmr f26, f3322; BE-NEXT: bl __truncsfhf2323; BE-NEXT: nop324; BE-NEXT: fmr f1, f25325; BE-NEXT: mr r30, r3326; BE-NEXT: bl __truncsfhf2327; BE-NEXT: nop328; BE-NEXT: fmr f1, f27329; BE-NEXT: mr r29, r3330; BE-NEXT: bl __truncsfhf2331; BE-NEXT: nop332; BE-NEXT: fmr f1, f26333; BE-NEXT: mr r28, r3334; BE-NEXT: bl __truncsfhf2335; BE-NEXT: nop336; BE-NEXT: fmr f1, f29337; BE-NEXT: mr r27, r3338; BE-NEXT: bl __truncsfhf2339; BE-NEXT: nop340; BE-NEXT: fmr f1, f28341; BE-NEXT: mr r26, r3342; BE-NEXT: bl __truncsfhf2343; BE-NEXT: nop344; BE-NEXT: fmr f1, f31345; BE-NEXT: mr r25, r3346; BE-NEXT: bl __truncsfhf2347; BE-NEXT: nop348; BE-NEXT: fmr f1, f30349; BE-NEXT: mr r24, r3350; BE-NEXT: bl __truncsfhf2351; BE-NEXT: nop352; BE-NEXT: clrldi r3, r3, 48353; BE-NEXT: bl __extendhfsf2354; BE-NEXT: nop355; BE-NEXT: clrldi r3, r24, 48356; BE-NEXT: fmr f31, f1357; BE-NEXT: bl __extendhfsf2358; BE-NEXT: nop359; BE-NEXT: clrldi r3, r25, 48360; BE-NEXT: fmr f30, f1361; BE-NEXT: bl __extendhfsf2362; BE-NEXT: nop363; BE-NEXT: clrldi r3, r26, 48364; BE-NEXT: fmr f29, f1365; BE-NEXT: bl __extendhfsf2366; BE-NEXT: nop367; BE-NEXT: clrldi r3, r27, 48368; BE-NEXT: fmr f28, f1369; BE-NEXT: bl __extendhfsf2370; BE-NEXT: nop371; BE-NEXT: clrldi r3, r28, 48372; BE-NEXT: fmr f27, f1373; BE-NEXT: bl __extendhfsf2374; BE-NEXT: nop375; BE-NEXT: clrldi r3, r29, 48376; BE-NEXT: fmr f26, f1377; BE-NEXT: bl __extendhfsf2378; BE-NEXT: nop379; BE-NEXT: clrldi r3, r30, 48380; BE-NEXT: fmr f25, f1381; BE-NEXT: bl __extendhfsf2382; BE-NEXT: nop383; BE-NEXT: bl llrintf384; BE-NEXT: nop385; BE-NEXT: fmr f1, f25386; BE-NEXT: std r3, 120(r1)387; BE-NEXT: bl llrintf388; BE-NEXT: nop389; BE-NEXT: fmr f1, f26390; BE-NEXT: std r3, 112(r1)391; BE-NEXT: bl llrintf392; BE-NEXT: nop393; BE-NEXT: fmr f1, f27394; BE-NEXT: std r3, 136(r1)395; BE-NEXT: bl llrintf396; BE-NEXT: nop397; BE-NEXT: fmr f1, f28398; BE-NEXT: std r3, 128(r1)399; BE-NEXT: bl llrintf400; BE-NEXT: nop401; BE-NEXT: fmr f1, f29402; BE-NEXT: std r3, 152(r1)403; BE-NEXT: bl llrintf404; BE-NEXT: nop405; BE-NEXT: fmr f1, f30406; BE-NEXT: std r3, 144(r1)407; BE-NEXT: bl llrintf408; BE-NEXT: nop409; BE-NEXT: fmr f1, f31410; BE-NEXT: std r3, 168(r1)411; BE-NEXT: bl llrintf412; BE-NEXT: nop413; BE-NEXT: std r3, 160(r1)414; BE-NEXT: addi r3, r1, 112415; BE-NEXT: ld r30, 232(r1) # 8-byte Folded Reload416; BE-NEXT: lfd f31, 296(r1) # 8-byte Folded Reload417; BE-NEXT: lfd f30, 288(r1) # 8-byte Folded Reload418; BE-NEXT: lfd f29, 280(r1) # 8-byte Folded Reload419; BE-NEXT: lxvd2x v2, 0, r3420; BE-NEXT: addi r3, r1, 128421; BE-NEXT: lfd f28, 272(r1) # 8-byte Folded Reload422; BE-NEXT: lfd f27, 264(r1) # 8-byte Folded Reload423; BE-NEXT: lfd f26, 256(r1) # 8-byte Folded Reload424; BE-NEXT: ld r29, 224(r1) # 8-byte Folded Reload425; BE-NEXT: ld r28, 216(r1) # 8-byte Folded Reload426; BE-NEXT: lxvd2x v3, 0, r3427; BE-NEXT: addi r3, r1, 144428; BE-NEXT: lfd f25, 248(r1) # 8-byte Folded Reload429; BE-NEXT: ld r27, 208(r1) # 8-byte Folded Reload430; BE-NEXT: ld r26, 200(r1) # 8-byte Folded Reload431; BE-NEXT: ld r25, 192(r1) # 8-byte Folded Reload432; BE-NEXT: ld r24, 184(r1) # 8-byte Folded Reload433; BE-NEXT: lxvd2x v4, 0, r3434; BE-NEXT: addi r3, r1, 160435; BE-NEXT: lxvd2x v5, 0, r3436; BE-NEXT: addi r1, r1, 304437; BE-NEXT: ld r0, 16(r1)438; BE-NEXT: mtlr r0439; BE-NEXT: blr440;441; CHECK-LABEL: llrint_v8i64_v8f16:442; CHECK: # %bb.0:443; CHECK-NEXT: mflr r0444; CHECK-NEXT: stdu r1, -240(r1)445; CHECK-NEXT: li r3, 48446; CHECK-NEXT: std r0, 256(r1)447; CHECK-NEXT: std r24, 120(r1) # 8-byte Folded Spill448; CHECK-NEXT: std r25, 128(r1) # 8-byte Folded Spill449; CHECK-NEXT: std r26, 136(r1) # 8-byte Folded Spill450; CHECK-NEXT: std r27, 144(r1) # 8-byte Folded Spill451; CHECK-NEXT: std r28, 152(r1) # 8-byte Folded Spill452; CHECK-NEXT: std r29, 160(r1) # 8-byte Folded Spill453; CHECK-NEXT: stxvd2x v28, r1, r3 # 16-byte Folded Spill454; CHECK-NEXT: li r3, 64455; CHECK-NEXT: std r30, 168(r1) # 8-byte Folded Spill456; CHECK-NEXT: stfd f25, 184(r1) # 8-byte Folded Spill457; CHECK-NEXT: fmr f25, f2458; CHECK-NEXT: stfd f26, 192(r1) # 8-byte Folded Spill459; CHECK-NEXT: fmr f26, f3460; CHECK-NEXT: stfd f27, 200(r1) # 8-byte Folded Spill461; CHECK-NEXT: fmr f27, f4462; CHECK-NEXT: stxvd2x v29, r1, r3 # 16-byte Folded Spill463; CHECK-NEXT: li r3, 80464; CHECK-NEXT: stfd f28, 208(r1) # 8-byte Folded Spill465; CHECK-NEXT: fmr f28, f5466; CHECK-NEXT: stfd f29, 216(r1) # 8-byte Folded Spill467; CHECK-NEXT: fmr f29, f6468; CHECK-NEXT: stfd f30, 224(r1) # 8-byte Folded Spill469; CHECK-NEXT: fmr f30, f7470; CHECK-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill471; CHECK-NEXT: li r3, 96472; CHECK-NEXT: stfd f31, 232(r1) # 8-byte Folded Spill473; CHECK-NEXT: fmr f31, f8474; CHECK-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill475; CHECK-NEXT: bl __truncsfhf2476; CHECK-NEXT: nop477; CHECK-NEXT: fmr f1, f25478; CHECK-NEXT: mr r30, r3479; CHECK-NEXT: bl __truncsfhf2480; CHECK-NEXT: nop481; CHECK-NEXT: fmr f1, f26482; CHECK-NEXT: mr r29, r3483; CHECK-NEXT: bl __truncsfhf2484; CHECK-NEXT: nop485; CHECK-NEXT: fmr f1, f27486; CHECK-NEXT: mr r28, r3487; CHECK-NEXT: bl __truncsfhf2488; CHECK-NEXT: nop489; CHECK-NEXT: fmr f1, f28490; CHECK-NEXT: mr r27, r3491; CHECK-NEXT: bl __truncsfhf2492; CHECK-NEXT: nop493; CHECK-NEXT: fmr f1, f29494; CHECK-NEXT: mr r26, r3495; CHECK-NEXT: bl __truncsfhf2496; CHECK-NEXT: nop497; CHECK-NEXT: fmr f1, f30498; CHECK-NEXT: mr r25, r3499; CHECK-NEXT: bl __truncsfhf2500; CHECK-NEXT: nop501; CHECK-NEXT: fmr f1, f31502; CHECK-NEXT: mr r24, r3503; CHECK-NEXT: bl __truncsfhf2504; CHECK-NEXT: nop505; CHECK-NEXT: clrldi r3, r3, 48506; CHECK-NEXT: bl __extendhfsf2507; CHECK-NEXT: nop508; CHECK-NEXT: clrldi r3, r24, 48509; CHECK-NEXT: fmr f31, f1510; CHECK-NEXT: bl __extendhfsf2511; CHECK-NEXT: nop512; CHECK-NEXT: clrldi r3, r25, 48513; CHECK-NEXT: fmr f30, f1514; CHECK-NEXT: bl __extendhfsf2515; CHECK-NEXT: nop516; CHECK-NEXT: clrldi r3, r26, 48517; CHECK-NEXT: fmr f29, f1518; CHECK-NEXT: bl __extendhfsf2519; CHECK-NEXT: nop520; CHECK-NEXT: clrldi r3, r27, 48521; CHECK-NEXT: fmr f28, f1522; CHECK-NEXT: bl __extendhfsf2523; CHECK-NEXT: nop524; CHECK-NEXT: clrldi r3, r28, 48525; CHECK-NEXT: fmr f27, f1526; CHECK-NEXT: bl __extendhfsf2527; CHECK-NEXT: nop528; CHECK-NEXT: clrldi r3, r29, 48529; CHECK-NEXT: fmr f26, f1530; CHECK-NEXT: bl __extendhfsf2531; CHECK-NEXT: nop532; CHECK-NEXT: clrldi r3, r30, 48533; CHECK-NEXT: fmr f25, f1534; CHECK-NEXT: bl __extendhfsf2535; CHECK-NEXT: nop536; CHECK-NEXT: bl llrintf537; CHECK-NEXT: nop538; CHECK-NEXT: fmr f1, f25539; CHECK-NEXT: mtvsrd v31, r3540; CHECK-NEXT: bl llrintf541; CHECK-NEXT: nop542; CHECK-NEXT: fmr f1, f26543; CHECK-NEXT: mtfprd f0, r3544; CHECK-NEXT: xxmrghd v31, vs0, v31545; CHECK-NEXT: bl llrintf546; CHECK-NEXT: nop547; CHECK-NEXT: fmr f1, f27548; CHECK-NEXT: mtvsrd v30, r3549; CHECK-NEXT: bl llrintf550; CHECK-NEXT: nop551; CHECK-NEXT: fmr f1, f28552; CHECK-NEXT: mtfprd f0, r3553; CHECK-NEXT: xxmrghd v30, vs0, v30554; CHECK-NEXT: bl llrintf555; CHECK-NEXT: nop556; CHECK-NEXT: fmr f1, f29557; CHECK-NEXT: mtvsrd v29, r3558; CHECK-NEXT: bl llrintf559; CHECK-NEXT: nop560; CHECK-NEXT: fmr f1, f30561; CHECK-NEXT: mtfprd f0, r3562; CHECK-NEXT: xxmrghd v29, vs0, v29563; CHECK-NEXT: bl llrintf564; CHECK-NEXT: nop565; CHECK-NEXT: fmr f1, f31566; CHECK-NEXT: mtvsrd v28, r3567; CHECK-NEXT: bl llrintf568; CHECK-NEXT: nop569; CHECK-NEXT: mtfprd f0, r3570; CHECK-NEXT: li r3, 96571; CHECK-NEXT: vmr v2, v31572; CHECK-NEXT: lfd f31, 232(r1) # 8-byte Folded Reload573; CHECK-NEXT: vmr v3, v30574; CHECK-NEXT: vmr v4, v29575; CHECK-NEXT: lfd f30, 224(r1) # 8-byte Folded Reload576; CHECK-NEXT: lfd f29, 216(r1) # 8-byte Folded Reload577; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload578; CHECK-NEXT: li r3, 80579; CHECK-NEXT: lfd f28, 208(r1) # 8-byte Folded Reload580; CHECK-NEXT: lfd f27, 200(r1) # 8-byte Folded Reload581; CHECK-NEXT: lfd f26, 192(r1) # 8-byte Folded Reload582; CHECK-NEXT: lfd f25, 184(r1) # 8-byte Folded Reload583; CHECK-NEXT: ld r30, 168(r1) # 8-byte Folded Reload584; CHECK-NEXT: ld r29, 160(r1) # 8-byte Folded Reload585; CHECK-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload586; CHECK-NEXT: li r3, 64587; CHECK-NEXT: ld r28, 152(r1) # 8-byte Folded Reload588; CHECK-NEXT: ld r27, 144(r1) # 8-byte Folded Reload589; CHECK-NEXT: xxmrghd v5, vs0, v28590; CHECK-NEXT: ld r26, 136(r1) # 8-byte Folded Reload591; CHECK-NEXT: ld r25, 128(r1) # 8-byte Folded Reload592; CHECK-NEXT: ld r24, 120(r1) # 8-byte Folded Reload593; CHECK-NEXT: lxvd2x v29, r1, r3 # 16-byte Folded Reload594; CHECK-NEXT: li r3, 48595; CHECK-NEXT: lxvd2x v28, r1, r3 # 16-byte Folded Reload596; CHECK-NEXT: addi r1, r1, 240597; CHECK-NEXT: ld r0, 16(r1)598; CHECK-NEXT: mtlr r0599; CHECK-NEXT: blr600 %a = call <8 x i64> @llvm.llrint.v8i64.v8f16(<8 x half> %x)601 ret <8 x i64> %a602}603declare <8 x i64> @llvm.llrint.v8i64.v8f16(<8 x half>)604 605define <16 x i64> @llrint_v16i64_v16f16(<16 x half> %x) nounwind {606; BE-LABEL: llrint_v16i64_v16f16:607; BE: # %bb.0:608; BE-NEXT: mflr r0609; BE-NEXT: stdu r1, -496(r1)610; BE-NEXT: std r0, 512(r1)611; BE-NEXT: stfd f20, 400(r1) # 8-byte Folded Spill612; BE-NEXT: fmr f20, f1613; BE-NEXT: fmr f1, f2614; BE-NEXT: std r16, 248(r1) # 8-byte Folded Spill615; BE-NEXT: std r17, 256(r1) # 8-byte Folded Spill616; BE-NEXT: std r18, 264(r1) # 8-byte Folded Spill617; BE-NEXT: std r19, 272(r1) # 8-byte Folded Spill618; BE-NEXT: std r20, 280(r1) # 8-byte Folded Spill619; BE-NEXT: std r21, 288(r1) # 8-byte Folded Spill620; BE-NEXT: std r22, 296(r1) # 8-byte Folded Spill621; BE-NEXT: std r23, 304(r1) # 8-byte Folded Spill622; BE-NEXT: std r24, 312(r1) # 8-byte Folded Spill623; BE-NEXT: std r25, 320(r1) # 8-byte Folded Spill624; BE-NEXT: std r26, 328(r1) # 8-byte Folded Spill625; BE-NEXT: std r27, 336(r1) # 8-byte Folded Spill626; BE-NEXT: std r28, 344(r1) # 8-byte Folded Spill627; BE-NEXT: std r29, 352(r1) # 8-byte Folded Spill628; BE-NEXT: std r30, 360(r1) # 8-byte Folded Spill629; BE-NEXT: stfd f17, 376(r1) # 8-byte Folded Spill630; BE-NEXT: stfd f18, 384(r1) # 8-byte Folded Spill631; BE-NEXT: stfd f19, 392(r1) # 8-byte Folded Spill632; BE-NEXT: stfd f21, 408(r1) # 8-byte Folded Spill633; BE-NEXT: stfd f22, 416(r1) # 8-byte Folded Spill634; BE-NEXT: stfd f23, 424(r1) # 8-byte Folded Spill635; BE-NEXT: stfd f24, 432(r1) # 8-byte Folded Spill636; BE-NEXT: stfd f25, 440(r1) # 8-byte Folded Spill637; BE-NEXT: stfd f26, 448(r1) # 8-byte Folded Spill638; BE-NEXT: stfd f27, 456(r1) # 8-byte Folded Spill639; BE-NEXT: stfd f28, 464(r1) # 8-byte Folded Spill640; BE-NEXT: stfd f29, 472(r1) # 8-byte Folded Spill641; BE-NEXT: stfd f30, 480(r1) # 8-byte Folded Spill642; BE-NEXT: stfd f31, 488(r1) # 8-byte Folded Spill643; BE-NEXT: fmr f31, f13644; BE-NEXT: fmr f29, f12645; BE-NEXT: fmr f30, f11646; BE-NEXT: fmr f28, f10647; BE-NEXT: fmr f27, f9648; BE-NEXT: fmr f26, f8649; BE-NEXT: fmr f25, f7650; BE-NEXT: fmr f24, f6651; BE-NEXT: fmr f23, f5652; BE-NEXT: fmr f22, f4653; BE-NEXT: fmr f21, f3654; BE-NEXT: bl __truncsfhf2655; BE-NEXT: nop656; BE-NEXT: fmr f1, f20657; BE-NEXT: mr r30, r3658; BE-NEXT: bl __truncsfhf2659; BE-NEXT: nop660; BE-NEXT: fmr f1, f22661; BE-NEXT: mr r29, r3662; BE-NEXT: bl __truncsfhf2663; BE-NEXT: nop664; BE-NEXT: fmr f1, f21665; BE-NEXT: mr r28, r3666; BE-NEXT: bl __truncsfhf2667; BE-NEXT: nop668; BE-NEXT: fmr f1, f24669; BE-NEXT: mr r27, r3670; BE-NEXT: bl __truncsfhf2671; BE-NEXT: nop672; BE-NEXT: fmr f1, f23673; BE-NEXT: mr r26, r3674; BE-NEXT: bl __truncsfhf2675; BE-NEXT: nop676; BE-NEXT: fmr f1, f26677; BE-NEXT: mr r25, r3678; BE-NEXT: bl __truncsfhf2679; BE-NEXT: nop680; BE-NEXT: fmr f1, f25681; BE-NEXT: mr r24, r3682; BE-NEXT: bl __truncsfhf2683; BE-NEXT: nop684; BE-NEXT: fmr f1, f28685; BE-NEXT: mr r23, r3686; BE-NEXT: bl __truncsfhf2687; BE-NEXT: nop688; BE-NEXT: fmr f1, f27689; BE-NEXT: mr r22, r3690; BE-NEXT: bl __truncsfhf2691; BE-NEXT: nop692; BE-NEXT: fmr f1, f29693; BE-NEXT: mr r21, r3694; BE-NEXT: bl __truncsfhf2695; BE-NEXT: nop696; BE-NEXT: fmr f1, f30697; BE-NEXT: mr r20, r3698; BE-NEXT: bl __truncsfhf2699; BE-NEXT: nop700; BE-NEXT: lfs f1, 652(r1)701; BE-NEXT: mr r19, r3702; BE-NEXT: bl __truncsfhf2703; BE-NEXT: nop704; BE-NEXT: fmr f1, f31705; BE-NEXT: mr r18, r3706; BE-NEXT: bl __truncsfhf2707; BE-NEXT: nop708; BE-NEXT: lfs f1, 668(r1)709; BE-NEXT: mr r17, r3710; BE-NEXT: bl __truncsfhf2711; BE-NEXT: nop712; BE-NEXT: lfs f1, 660(r1)713; BE-NEXT: mr r16, r3714; BE-NEXT: bl __truncsfhf2715; BE-NEXT: nop716; BE-NEXT: clrldi r3, r3, 48717; BE-NEXT: bl __extendhfsf2718; BE-NEXT: nop719; BE-NEXT: clrldi r3, r16, 48720; BE-NEXT: fmr f31, f1721; BE-NEXT: bl __extendhfsf2722; BE-NEXT: nop723; BE-NEXT: clrldi r3, r17, 48724; BE-NEXT: fmr f30, f1725; BE-NEXT: bl __extendhfsf2726; BE-NEXT: nop727; BE-NEXT: clrldi r3, r18, 48728; BE-NEXT: fmr f29, f1729; BE-NEXT: bl __extendhfsf2730; BE-NEXT: nop731; BE-NEXT: clrldi r3, r19, 48732; BE-NEXT: fmr f28, f1733; BE-NEXT: bl __extendhfsf2734; BE-NEXT: nop735; BE-NEXT: clrldi r3, r20, 48736; BE-NEXT: fmr f27, f1737; BE-NEXT: bl __extendhfsf2738; BE-NEXT: nop739; BE-NEXT: clrldi r3, r21, 48740; BE-NEXT: fmr f26, f1741; BE-NEXT: bl __extendhfsf2742; BE-NEXT: nop743; BE-NEXT: clrldi r3, r22, 48744; BE-NEXT: fmr f25, f1745; BE-NEXT: bl __extendhfsf2746; BE-NEXT: nop747; BE-NEXT: clrldi r3, r23, 48748; BE-NEXT: fmr f24, f1749; BE-NEXT: bl __extendhfsf2750; BE-NEXT: nop751; BE-NEXT: clrldi r3, r24, 48752; BE-NEXT: fmr f23, f1753; BE-NEXT: bl __extendhfsf2754; BE-NEXT: nop755; BE-NEXT: clrldi r3, r25, 48756; BE-NEXT: fmr f22, f1757; BE-NEXT: bl __extendhfsf2758; BE-NEXT: nop759; BE-NEXT: clrldi r3, r26, 48760; BE-NEXT: fmr f21, f1761; BE-NEXT: bl __extendhfsf2762; BE-NEXT: nop763; BE-NEXT: clrldi r3, r27, 48764; BE-NEXT: fmr f20, f1765; BE-NEXT: bl __extendhfsf2766; BE-NEXT: nop767; BE-NEXT: clrldi r3, r28, 48768; BE-NEXT: fmr f19, f1769; BE-NEXT: bl __extendhfsf2770; BE-NEXT: nop771; BE-NEXT: clrldi r3, r29, 48772; BE-NEXT: fmr f18, f1773; BE-NEXT: bl __extendhfsf2774; BE-NEXT: nop775; BE-NEXT: clrldi r3, r30, 48776; BE-NEXT: fmr f17, f1777; BE-NEXT: bl __extendhfsf2778; BE-NEXT: nop779; BE-NEXT: bl llrintf780; BE-NEXT: nop781; BE-NEXT: fmr f1, f17782; BE-NEXT: std r3, 120(r1)783; BE-NEXT: bl llrintf784; BE-NEXT: nop785; BE-NEXT: fmr f1, f18786; BE-NEXT: std r3, 112(r1)787; BE-NEXT: bl llrintf788; BE-NEXT: nop789; BE-NEXT: fmr f1, f19790; BE-NEXT: std r3, 136(r1)791; BE-NEXT: bl llrintf792; BE-NEXT: nop793; BE-NEXT: fmr f1, f20794; BE-NEXT: std r3, 128(r1)795; BE-NEXT: bl llrintf796; BE-NEXT: nop797; BE-NEXT: fmr f1, f21798; BE-NEXT: std r3, 152(r1)799; BE-NEXT: bl llrintf800; BE-NEXT: nop801; BE-NEXT: fmr f1, f22802; BE-NEXT: std r3, 144(r1)803; BE-NEXT: bl llrintf804; BE-NEXT: nop805; BE-NEXT: fmr f1, f23806; BE-NEXT: std r3, 168(r1)807; BE-NEXT: bl llrintf808; BE-NEXT: nop809; BE-NEXT: fmr f1, f24810; BE-NEXT: std r3, 160(r1)811; BE-NEXT: bl llrintf812; BE-NEXT: nop813; BE-NEXT: fmr f1, f25814; BE-NEXT: std r3, 184(r1)815; BE-NEXT: bl llrintf816; BE-NEXT: nop817; BE-NEXT: fmr f1, f26818; BE-NEXT: std r3, 176(r1)819; BE-NEXT: bl llrintf820; BE-NEXT: nop821; BE-NEXT: fmr f1, f27822; BE-NEXT: std r3, 200(r1)823; BE-NEXT: bl llrintf824; BE-NEXT: nop825; BE-NEXT: fmr f1, f28826; BE-NEXT: std r3, 192(r1)827; BE-NEXT: bl llrintf828; BE-NEXT: nop829; BE-NEXT: fmr f1, f29830; BE-NEXT: std r3, 216(r1)831; BE-NEXT: bl llrintf832; BE-NEXT: nop833; BE-NEXT: fmr f1, f30834; BE-NEXT: std r3, 208(r1)835; BE-NEXT: bl llrintf836; BE-NEXT: nop837; BE-NEXT: fmr f1, f31838; BE-NEXT: std r3, 232(r1)839; BE-NEXT: bl llrintf840; BE-NEXT: nop841; BE-NEXT: std r3, 224(r1)842; BE-NEXT: addi r3, r1, 112843; BE-NEXT: ld r30, 360(r1) # 8-byte Folded Reload844; BE-NEXT: lfd f31, 488(r1) # 8-byte Folded Reload845; BE-NEXT: lfd f30, 480(r1) # 8-byte Folded Reload846; BE-NEXT: lfd f29, 472(r1) # 8-byte Folded Reload847; BE-NEXT: lxvd2x v2, 0, r3848; BE-NEXT: addi r3, r1, 128849; BE-NEXT: lfd f28, 464(r1) # 8-byte Folded Reload850; BE-NEXT: lfd f27, 456(r1) # 8-byte Folded Reload851; BE-NEXT: lfd f26, 448(r1) # 8-byte Folded Reload852; BE-NEXT: ld r29, 352(r1) # 8-byte Folded Reload853; BE-NEXT: ld r28, 344(r1) # 8-byte Folded Reload854; BE-NEXT: lxvd2x v3, 0, r3855; BE-NEXT: addi r3, r1, 144856; BE-NEXT: lfd f25, 440(r1) # 8-byte Folded Reload857; BE-NEXT: lfd f24, 432(r1) # 8-byte Folded Reload858; BE-NEXT: lfd f23, 424(r1) # 8-byte Folded Reload859; BE-NEXT: ld r27, 336(r1) # 8-byte Folded Reload860; BE-NEXT: ld r26, 328(r1) # 8-byte Folded Reload861; BE-NEXT: lxvd2x v4, 0, r3862; BE-NEXT: addi r3, r1, 160863; BE-NEXT: lfd f22, 416(r1) # 8-byte Folded Reload864; BE-NEXT: lfd f21, 408(r1) # 8-byte Folded Reload865; BE-NEXT: lfd f20, 400(r1) # 8-byte Folded Reload866; BE-NEXT: ld r25, 320(r1) # 8-byte Folded Reload867; BE-NEXT: ld r24, 312(r1) # 8-byte Folded Reload868; BE-NEXT: lxvd2x v5, 0, r3869; BE-NEXT: addi r3, r1, 176870; BE-NEXT: lfd f19, 392(r1) # 8-byte Folded Reload871; BE-NEXT: lfd f18, 384(r1) # 8-byte Folded Reload872; BE-NEXT: lfd f17, 376(r1) # 8-byte Folded Reload873; BE-NEXT: ld r23, 304(r1) # 8-byte Folded Reload874; BE-NEXT: ld r22, 296(r1) # 8-byte Folded Reload875; BE-NEXT: lxvd2x v6, 0, r3876; BE-NEXT: addi r3, r1, 192877; BE-NEXT: ld r21, 288(r1) # 8-byte Folded Reload878; BE-NEXT: ld r20, 280(r1) # 8-byte Folded Reload879; BE-NEXT: ld r19, 272(r1) # 8-byte Folded Reload880; BE-NEXT: ld r18, 264(r1) # 8-byte Folded Reload881; BE-NEXT: ld r17, 256(r1) # 8-byte Folded Reload882; BE-NEXT: ld r16, 248(r1) # 8-byte Folded Reload883; BE-NEXT: lxvd2x v7, 0, r3884; BE-NEXT: addi r3, r1, 208885; BE-NEXT: lxvd2x v8, 0, r3886; BE-NEXT: addi r3, r1, 224887; BE-NEXT: lxvd2x v9, 0, r3888; BE-NEXT: addi r1, r1, 496889; BE-NEXT: ld r0, 16(r1)890; BE-NEXT: mtlr r0891; BE-NEXT: blr892;893; CHECK-LABEL: llrint_v16i64_v16f16:894; CHECK: # %bb.0:895; CHECK-NEXT: mflr r0896; CHECK-NEXT: stdu r1, -432(r1)897; CHECK-NEXT: li r3, 48898; CHECK-NEXT: std r0, 448(r1)899; CHECK-NEXT: std r16, 184(r1) # 8-byte Folded Spill900; CHECK-NEXT: std r17, 192(r1) # 8-byte Folded Spill901; CHECK-NEXT: std r18, 200(r1) # 8-byte Folded Spill902; CHECK-NEXT: std r19, 208(r1) # 8-byte Folded Spill903; CHECK-NEXT: std r20, 216(r1) # 8-byte Folded Spill904; CHECK-NEXT: std r21, 224(r1) # 8-byte Folded Spill905; CHECK-NEXT: stxvd2x v24, r1, r3 # 16-byte Folded Spill906; CHECK-NEXT: li r3, 64907; CHECK-NEXT: std r22, 232(r1) # 8-byte Folded Spill908; CHECK-NEXT: std r23, 240(r1) # 8-byte Folded Spill909; CHECK-NEXT: std r24, 248(r1) # 8-byte Folded Spill910; CHECK-NEXT: std r25, 256(r1) # 8-byte Folded Spill911; CHECK-NEXT: std r26, 264(r1) # 8-byte Folded Spill912; CHECK-NEXT: std r27, 272(r1) # 8-byte Folded Spill913; CHECK-NEXT: stxvd2x v25, r1, r3 # 16-byte Folded Spill914; CHECK-NEXT: li r3, 80915; CHECK-NEXT: std r28, 280(r1) # 8-byte Folded Spill916; CHECK-NEXT: std r29, 288(r1) # 8-byte Folded Spill917; CHECK-NEXT: std r30, 296(r1) # 8-byte Folded Spill918; CHECK-NEXT: stfd f17, 312(r1) # 8-byte Folded Spill919; CHECK-NEXT: stfd f18, 320(r1) # 8-byte Folded Spill920; CHECK-NEXT: stfd f19, 328(r1) # 8-byte Folded Spill921; CHECK-NEXT: stxvd2x v26, r1, r3 # 16-byte Folded Spill922; CHECK-NEXT: li r3, 96923; CHECK-NEXT: stfd f20, 336(r1) # 8-byte Folded Spill924; CHECK-NEXT: fmr f20, f2925; CHECK-NEXT: stfd f21, 344(r1) # 8-byte Folded Spill926; CHECK-NEXT: fmr f21, f3927; CHECK-NEXT: stfd f22, 352(r1) # 8-byte Folded Spill928; CHECK-NEXT: fmr f22, f4929; CHECK-NEXT: stxvd2x v27, r1, r3 # 16-byte Folded Spill930; CHECK-NEXT: li r3, 112931; CHECK-NEXT: stfd f23, 360(r1) # 8-byte Folded Spill932; CHECK-NEXT: fmr f23, f5933; CHECK-NEXT: stfd f24, 368(r1) # 8-byte Folded Spill934; CHECK-NEXT: fmr f24, f6935; CHECK-NEXT: stfd f25, 376(r1) # 8-byte Folded Spill936; CHECK-NEXT: fmr f25, f7937; CHECK-NEXT: stxvd2x v28, r1, r3 # 16-byte Folded Spill938; CHECK-NEXT: li r3, 128939; CHECK-NEXT: stfd f26, 384(r1) # 8-byte Folded Spill940; CHECK-NEXT: fmr f26, f8941; CHECK-NEXT: stfd f27, 392(r1) # 8-byte Folded Spill942; CHECK-NEXT: fmr f27, f9943; CHECK-NEXT: stfd f28, 400(r1) # 8-byte Folded Spill944; CHECK-NEXT: fmr f28, f10945; CHECK-NEXT: stxvd2x v29, r1, r3 # 16-byte Folded Spill946; CHECK-NEXT: li r3, 144947; CHECK-NEXT: stfd f29, 408(r1) # 8-byte Folded Spill948; CHECK-NEXT: fmr f29, f11949; CHECK-NEXT: stfd f30, 416(r1) # 8-byte Folded Spill950; CHECK-NEXT: fmr f30, f12951; CHECK-NEXT: stfd f31, 424(r1) # 8-byte Folded Spill952; CHECK-NEXT: fmr f31, f13953; CHECK-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill954; CHECK-NEXT: li r3, 160955; CHECK-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill956; CHECK-NEXT: bl __truncsfhf2957; CHECK-NEXT: nop958; CHECK-NEXT: fmr f1, f20959; CHECK-NEXT: mr r30, r3960; CHECK-NEXT: bl __truncsfhf2961; CHECK-NEXT: nop962; CHECK-NEXT: fmr f1, f21963; CHECK-NEXT: mr r29, r3964; CHECK-NEXT: bl __truncsfhf2965; CHECK-NEXT: nop966; CHECK-NEXT: fmr f1, f22967; CHECK-NEXT: mr r28, r3968; CHECK-NEXT: bl __truncsfhf2969; CHECK-NEXT: nop970; CHECK-NEXT: fmr f1, f23971; CHECK-NEXT: mr r27, r3972; CHECK-NEXT: bl __truncsfhf2973; CHECK-NEXT: nop974; CHECK-NEXT: fmr f1, f24975; CHECK-NEXT: mr r26, r3976; CHECK-NEXT: bl __truncsfhf2977; CHECK-NEXT: nop978; CHECK-NEXT: fmr f1, f25979; CHECK-NEXT: mr r25, r3980; CHECK-NEXT: bl __truncsfhf2981; CHECK-NEXT: nop982; CHECK-NEXT: fmr f1, f26983; CHECK-NEXT: mr r24, r3984; CHECK-NEXT: bl __truncsfhf2985; CHECK-NEXT: nop986; CHECK-NEXT: fmr f1, f27987; CHECK-NEXT: mr r23, r3988; CHECK-NEXT: bl __truncsfhf2989; CHECK-NEXT: nop990; CHECK-NEXT: fmr f1, f28991; CHECK-NEXT: mr r22, r3992; CHECK-NEXT: bl __truncsfhf2993; CHECK-NEXT: nop994; CHECK-NEXT: fmr f1, f29995; CHECK-NEXT: mr r21, r3996; CHECK-NEXT: bl __truncsfhf2997; CHECK-NEXT: nop998; CHECK-NEXT: fmr f1, f30999; CHECK-NEXT: mr r20, r31000; CHECK-NEXT: bl __truncsfhf21001; CHECK-NEXT: nop1002; CHECK-NEXT: fmr f1, f311003; CHECK-NEXT: mr r19, r31004; CHECK-NEXT: bl __truncsfhf21005; CHECK-NEXT: nop1006; CHECK-NEXT: lfs f1, 568(r1)1007; CHECK-NEXT: mr r18, r31008; CHECK-NEXT: bl __truncsfhf21009; CHECK-NEXT: nop1010; CHECK-NEXT: lfs f1, 576(r1)1011; CHECK-NEXT: mr r17, r31012; CHECK-NEXT: bl __truncsfhf21013; CHECK-NEXT: nop1014; CHECK-NEXT: lfs f1, 584(r1)1015; CHECK-NEXT: mr r16, r31016; CHECK-NEXT: bl __truncsfhf21017; CHECK-NEXT: nop1018; CHECK-NEXT: clrldi r3, r3, 481019; CHECK-NEXT: bl __extendhfsf21020; CHECK-NEXT: nop1021; CHECK-NEXT: clrldi r3, r16, 481022; CHECK-NEXT: fmr f31, f11023; CHECK-NEXT: bl __extendhfsf21024; CHECK-NEXT: nop1025; CHECK-NEXT: clrldi r3, r17, 481026; CHECK-NEXT: fmr f30, f11027; CHECK-NEXT: bl __extendhfsf21028; CHECK-NEXT: nop1029; CHECK-NEXT: clrldi r3, r18, 481030; CHECK-NEXT: fmr f29, f11031; CHECK-NEXT: bl __extendhfsf21032; CHECK-NEXT: nop1033; CHECK-NEXT: clrldi r3, r19, 481034; CHECK-NEXT: fmr f28, f11035; CHECK-NEXT: bl __extendhfsf21036; CHECK-NEXT: nop1037; CHECK-NEXT: clrldi r3, r20, 481038; CHECK-NEXT: fmr f27, f11039; CHECK-NEXT: bl __extendhfsf21040; CHECK-NEXT: nop1041; CHECK-NEXT: clrldi r3, r21, 481042; CHECK-NEXT: fmr f26, f11043; CHECK-NEXT: bl __extendhfsf21044; CHECK-NEXT: nop1045; CHECK-NEXT: clrldi r3, r22, 481046; CHECK-NEXT: fmr f25, f11047; CHECK-NEXT: bl __extendhfsf21048; CHECK-NEXT: nop1049; CHECK-NEXT: clrldi r3, r23, 481050; CHECK-NEXT: fmr f24, f11051; CHECK-NEXT: bl __extendhfsf21052; CHECK-NEXT: nop1053; CHECK-NEXT: clrldi r3, r24, 481054; CHECK-NEXT: fmr f23, f11055; CHECK-NEXT: bl __extendhfsf21056; CHECK-NEXT: nop1057; CHECK-NEXT: clrldi r3, r25, 481058; CHECK-NEXT: fmr f22, f11059; CHECK-NEXT: bl __extendhfsf21060; CHECK-NEXT: nop1061; CHECK-NEXT: clrldi r3, r26, 481062; CHECK-NEXT: fmr f21, f11063; CHECK-NEXT: bl __extendhfsf21064; CHECK-NEXT: nop1065; CHECK-NEXT: clrldi r3, r27, 481066; CHECK-NEXT: fmr f20, f11067; CHECK-NEXT: bl __extendhfsf21068; CHECK-NEXT: nop1069; CHECK-NEXT: clrldi r3, r28, 481070; CHECK-NEXT: fmr f19, f11071; CHECK-NEXT: bl __extendhfsf21072; CHECK-NEXT: nop1073; CHECK-NEXT: clrldi r3, r29, 481074; CHECK-NEXT: fmr f18, f11075; CHECK-NEXT: bl __extendhfsf21076; CHECK-NEXT: nop1077; CHECK-NEXT: clrldi r3, r30, 481078; CHECK-NEXT: fmr f17, f11079; CHECK-NEXT: bl __extendhfsf21080; CHECK-NEXT: nop1081; CHECK-NEXT: bl llrintf1082; CHECK-NEXT: nop1083; CHECK-NEXT: fmr f1, f171084; CHECK-NEXT: mtvsrd v31, r31085; CHECK-NEXT: bl llrintf1086; CHECK-NEXT: nop1087; CHECK-NEXT: fmr f1, f181088; CHECK-NEXT: mtfprd f0, r31089; CHECK-NEXT: xxmrghd v31, vs0, v311090; CHECK-NEXT: bl llrintf1091; CHECK-NEXT: nop1092; CHECK-NEXT: fmr f1, f191093; CHECK-NEXT: mtvsrd v30, r31094; CHECK-NEXT: bl llrintf1095; CHECK-NEXT: nop1096; CHECK-NEXT: fmr f1, f201097; CHECK-NEXT: mtfprd f0, r31098; CHECK-NEXT: xxmrghd v30, vs0, v301099; CHECK-NEXT: bl llrintf1100; CHECK-NEXT: nop1101; CHECK-NEXT: fmr f1, f211102; CHECK-NEXT: mtvsrd v29, r31103; CHECK-NEXT: bl llrintf1104; CHECK-NEXT: nop1105; CHECK-NEXT: fmr f1, f221106; CHECK-NEXT: mtfprd f0, r31107; CHECK-NEXT: xxmrghd v29, vs0, v291108; CHECK-NEXT: bl llrintf1109; CHECK-NEXT: nop1110; CHECK-NEXT: fmr f1, f231111; CHECK-NEXT: mtvsrd v28, r31112; CHECK-NEXT: bl llrintf1113; CHECK-NEXT: nop1114; CHECK-NEXT: fmr f1, f241115; CHECK-NEXT: mtfprd f0, r31116; CHECK-NEXT: xxmrghd v28, vs0, v281117; CHECK-NEXT: bl llrintf1118; CHECK-NEXT: nop1119; CHECK-NEXT: fmr f1, f251120; CHECK-NEXT: mtvsrd v27, r31121; CHECK-NEXT: bl llrintf1122; CHECK-NEXT: nop1123; CHECK-NEXT: fmr f1, f261124; CHECK-NEXT: mtfprd f0, r31125; CHECK-NEXT: xxmrghd v27, vs0, v271126; CHECK-NEXT: bl llrintf1127; CHECK-NEXT: nop1128; CHECK-NEXT: fmr f1, f271129; CHECK-NEXT: mtvsrd v26, r31130; CHECK-NEXT: bl llrintf1131; CHECK-NEXT: nop1132; CHECK-NEXT: fmr f1, f281133; CHECK-NEXT: mtfprd f0, r31134; CHECK-NEXT: xxmrghd v26, vs0, v261135; CHECK-NEXT: bl llrintf1136; CHECK-NEXT: nop1137; CHECK-NEXT: fmr f1, f291138; CHECK-NEXT: mtvsrd v25, r31139; CHECK-NEXT: bl llrintf1140; CHECK-NEXT: nop1141; CHECK-NEXT: fmr f1, f301142; CHECK-NEXT: mtfprd f0, r31143; CHECK-NEXT: xxmrghd v25, vs0, v251144; CHECK-NEXT: bl llrintf1145; CHECK-NEXT: nop1146; CHECK-NEXT: fmr f1, f311147; CHECK-NEXT: mtvsrd v24, r31148; CHECK-NEXT: bl llrintf1149; CHECK-NEXT: nop1150; CHECK-NEXT: mtfprd f0, r31151; CHECK-NEXT: li r3, 1601152; CHECK-NEXT: vmr v2, v311153; CHECK-NEXT: lfd f31, 424(r1) # 8-byte Folded Reload1154; CHECK-NEXT: vmr v3, v301155; CHECK-NEXT: vmr v4, v291156; CHECK-NEXT: lfd f30, 416(r1) # 8-byte Folded Reload1157; CHECK-NEXT: lfd f29, 408(r1) # 8-byte Folded Reload1158; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload1159; CHECK-NEXT: li r3, 1441160; CHECK-NEXT: vmr v5, v281161; CHECK-NEXT: vmr v6, v271162; CHECK-NEXT: vmr v7, v261163; CHECK-NEXT: vmr v8, v251164; CHECK-NEXT: lfd f28, 400(r1) # 8-byte Folded Reload1165; CHECK-NEXT: lfd f27, 392(r1) # 8-byte Folded Reload1166; CHECK-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload1167; CHECK-NEXT: li r3, 1281168; CHECK-NEXT: lfd f26, 384(r1) # 8-byte Folded Reload1169; CHECK-NEXT: lfd f25, 376(r1) # 8-byte Folded Reload1170; CHECK-NEXT: xxmrghd v9, vs0, v241171; CHECK-NEXT: lfd f24, 368(r1) # 8-byte Folded Reload1172; CHECK-NEXT: lfd f23, 360(r1) # 8-byte Folded Reload1173; CHECK-NEXT: lfd f22, 352(r1) # 8-byte Folded Reload1174; CHECK-NEXT: lxvd2x v29, r1, r3 # 16-byte Folded Reload1175; CHECK-NEXT: li r3, 1121176; CHECK-NEXT: lfd f21, 344(r1) # 8-byte Folded Reload1177; CHECK-NEXT: ld r30, 296(r1) # 8-byte Folded Reload1178; CHECK-NEXT: lfd f20, 336(r1) # 8-byte Folded Reload1179; CHECK-NEXT: lfd f19, 328(r1) # 8-byte Folded Reload1180; CHECK-NEXT: ld r29, 288(r1) # 8-byte Folded Reload1181; CHECK-NEXT: ld r28, 280(r1) # 8-byte Folded Reload1182; CHECK-NEXT: lxvd2x v28, r1, r3 # 16-byte Folded Reload1183; CHECK-NEXT: li r3, 961184; CHECK-NEXT: lfd f18, 320(r1) # 8-byte Folded Reload1185; CHECK-NEXT: ld r27, 272(r1) # 8-byte Folded Reload1186; CHECK-NEXT: lfd f17, 312(r1) # 8-byte Folded Reload1187; CHECK-NEXT: ld r26, 264(r1) # 8-byte Folded Reload1188; CHECK-NEXT: ld r25, 256(r1) # 8-byte Folded Reload1189; CHECK-NEXT: ld r24, 248(r1) # 8-byte Folded Reload1190; CHECK-NEXT: lxvd2x v27, r1, r3 # 16-byte Folded Reload1191; CHECK-NEXT: li r3, 801192; CHECK-NEXT: ld r23, 240(r1) # 8-byte Folded Reload1193; CHECK-NEXT: ld r22, 232(r1) # 8-byte Folded Reload1194; CHECK-NEXT: ld r21, 224(r1) # 8-byte Folded Reload1195; CHECK-NEXT: ld r20, 216(r1) # 8-byte Folded Reload1196; CHECK-NEXT: ld r19, 208(r1) # 8-byte Folded Reload1197; CHECK-NEXT: ld r18, 200(r1) # 8-byte Folded Reload1198; CHECK-NEXT: lxvd2x v26, r1, r3 # 16-byte Folded Reload1199; CHECK-NEXT: li r3, 641200; CHECK-NEXT: ld r17, 192(r1) # 8-byte Folded Reload1201; CHECK-NEXT: ld r16, 184(r1) # 8-byte Folded Reload1202; CHECK-NEXT: lxvd2x v25, r1, r3 # 16-byte Folded Reload1203; CHECK-NEXT: li r3, 481204; CHECK-NEXT: lxvd2x v24, r1, r3 # 16-byte Folded Reload1205; CHECK-NEXT: addi r1, r1, 4321206; CHECK-NEXT: ld r0, 16(r1)1207; CHECK-NEXT: mtlr r01208; CHECK-NEXT: blr1209 %a = call <16 x i64> @llvm.llrint.v16i64.v16f16(<16 x half> %x)1210 ret <16 x i64> %a1211}1212declare <16 x i64> @llvm.llrint.v16i64.v16f16(<16 x half>)1213 1214define <32 x i64> @llrint_v32i64_v32f16(<32 x half> %x) nounwind {1215; BE-LABEL: llrint_v32i64_v32f16:1216; BE: # %bb.0:1217; BE-NEXT: mflr r01218; BE-NEXT: stdu r1, -864(r1)1219; BE-NEXT: std r0, 880(r1)1220; BE-NEXT: stfd f20, 768(r1) # 8-byte Folded Spill1221; BE-NEXT: fmr f20, f11222; BE-NEXT: fmr f1, f21223; BE-NEXT: std r14, 576(r1) # 8-byte Folded Spill1224; BE-NEXT: std r15, 584(r1) # 8-byte Folded Spill1225; BE-NEXT: std r16, 592(r1) # 8-byte Folded Spill1226; BE-NEXT: std r17, 600(r1) # 8-byte Folded Spill1227; BE-NEXT: std r18, 608(r1) # 8-byte Folded Spill1228; BE-NEXT: std r19, 616(r1) # 8-byte Folded Spill1229; BE-NEXT: std r20, 624(r1) # 8-byte Folded Spill1230; BE-NEXT: std r21, 632(r1) # 8-byte Folded Spill1231; BE-NEXT: std r22, 640(r1) # 8-byte Folded Spill1232; BE-NEXT: std r23, 648(r1) # 8-byte Folded Spill1233; BE-NEXT: std r24, 656(r1) # 8-byte Folded Spill1234; BE-NEXT: std r25, 664(r1) # 8-byte Folded Spill1235; BE-NEXT: std r26, 672(r1) # 8-byte Folded Spill1236; BE-NEXT: std r27, 680(r1) # 8-byte Folded Spill1237; BE-NEXT: std r28, 688(r1) # 8-byte Folded Spill1238; BE-NEXT: std r29, 696(r1) # 8-byte Folded Spill1239; BE-NEXT: std r30, 704(r1) # 8-byte Folded Spill1240; BE-NEXT: std r31, 712(r1) # 8-byte Folded Spill1241; BE-NEXT: stfd f14, 720(r1) # 8-byte Folded Spill1242; BE-NEXT: stfd f15, 728(r1) # 8-byte Folded Spill1243; BE-NEXT: stfd f16, 736(r1) # 8-byte Folded Spill1244; BE-NEXT: stfd f17, 744(r1) # 8-byte Folded Spill1245; BE-NEXT: stfd f18, 752(r1) # 8-byte Folded Spill1246; BE-NEXT: stfd f19, 760(r1) # 8-byte Folded Spill1247; BE-NEXT: stfd f21, 776(r1) # 8-byte Folded Spill1248; BE-NEXT: stfd f22, 784(r1) # 8-byte Folded Spill1249; BE-NEXT: stfd f23, 792(r1) # 8-byte Folded Spill1250; BE-NEXT: stfd f24, 800(r1) # 8-byte Folded Spill1251; BE-NEXT: stfd f25, 808(r1) # 8-byte Folded Spill1252; BE-NEXT: stfd f26, 816(r1) # 8-byte Folded Spill1253; BE-NEXT: stfd f27, 824(r1) # 8-byte Folded Spill1254; BE-NEXT: stfd f28, 832(r1) # 8-byte Folded Spill1255; BE-NEXT: stfd f29, 840(r1) # 8-byte Folded Spill1256; BE-NEXT: stfd f30, 848(r1) # 8-byte Folded Spill1257; BE-NEXT: stfd f31, 856(r1) # 8-byte Folded Spill1258; BE-NEXT: fmr f31, f131259; BE-NEXT: mr r30, r31260; BE-NEXT: fmr f29, f121261; BE-NEXT: fmr f30, f111262; BE-NEXT: fmr f28, f101263; BE-NEXT: fmr f27, f91264; BE-NEXT: fmr f26, f81265; BE-NEXT: fmr f25, f71266; BE-NEXT: fmr f24, f61267; BE-NEXT: fmr f23, f51268; BE-NEXT: fmr f22, f41269; BE-NEXT: fmr f21, f31270; BE-NEXT: bl __truncsfhf21271; BE-NEXT: nop1272; BE-NEXT: fmr f1, f201273; BE-NEXT: std r3, 304(r1) # 8-byte Folded Spill1274; BE-NEXT: bl __truncsfhf21275; BE-NEXT: nop1276; BE-NEXT: fmr f1, f221277; BE-NEXT: std r3, 296(r1) # 8-byte Folded Spill1278; BE-NEXT: bl __truncsfhf21279; BE-NEXT: nop1280; BE-NEXT: fmr f1, f211281; BE-NEXT: std r3, 280(r1) # 8-byte Folded Spill1282; BE-NEXT: bl __truncsfhf21283; BE-NEXT: nop1284; BE-NEXT: fmr f1, f241285; BE-NEXT: std r3, 264(r1) # 8-byte Folded Spill1286; BE-NEXT: bl __truncsfhf21287; BE-NEXT: nop1288; BE-NEXT: fmr f1, f231289; BE-NEXT: std r3, 248(r1) # 8-byte Folded Spill1290; BE-NEXT: bl __truncsfhf21291; BE-NEXT: nop1292; BE-NEXT: fmr f1, f261293; BE-NEXT: std r3, 232(r1) # 8-byte Folded Spill1294; BE-NEXT: bl __truncsfhf21295; BE-NEXT: nop1296; BE-NEXT: fmr f1, f251297; BE-NEXT: std r3, 216(r1) # 8-byte Folded Spill1298; BE-NEXT: bl __truncsfhf21299; BE-NEXT: nop1300; BE-NEXT: fmr f1, f281301; BE-NEXT: std r3, 200(r1) # 8-byte Folded Spill1302; BE-NEXT: bl __truncsfhf21303; BE-NEXT: nop1304; BE-NEXT: fmr f1, f271305; BE-NEXT: std r3, 184(r1) # 8-byte Folded Spill1306; BE-NEXT: bl __truncsfhf21307; BE-NEXT: nop1308; BE-NEXT: fmr f1, f291309; BE-NEXT: std r3, 168(r1) # 8-byte Folded Spill1310; BE-NEXT: bl __truncsfhf21311; BE-NEXT: nop1312; BE-NEXT: fmr f1, f301313; BE-NEXT: std r3, 152(r1) # 8-byte Folded Spill1314; BE-NEXT: bl __truncsfhf21315; BE-NEXT: nop1316; BE-NEXT: lfs f1, 1028(r1)1317; BE-NEXT: std r3, 136(r1) # 8-byte Folded Spill1318; BE-NEXT: bl __truncsfhf21319; BE-NEXT: nop1320; BE-NEXT: fmr f1, f311321; BE-NEXT: std r3, 120(r1) # 8-byte Folded Spill1322; BE-NEXT: bl __truncsfhf21323; BE-NEXT: nop1324; BE-NEXT: lfs f1, 1044(r1)1325; BE-NEXT: std r3, 112(r1) # 8-byte Folded Spill1326; BE-NEXT: bl __truncsfhf21327; BE-NEXT: nop1328; BE-NEXT: lfs f1, 1036(r1)1329; BE-NEXT: mr r15, r31330; BE-NEXT: bl __truncsfhf21331; BE-NEXT: nop1332; BE-NEXT: lfs f1, 1060(r1)1333; BE-NEXT: mr r14, r31334; BE-NEXT: bl __truncsfhf21335; BE-NEXT: nop1336; BE-NEXT: lfs f1, 1052(r1)1337; BE-NEXT: mr r31, r31338; BE-NEXT: bl __truncsfhf21339; BE-NEXT: nop1340; BE-NEXT: lfs f1, 1076(r1)1341; BE-NEXT: mr r29, r31342; BE-NEXT: bl __truncsfhf21343; BE-NEXT: nop1344; BE-NEXT: lfs f1, 1068(r1)1345; BE-NEXT: mr r28, r31346; BE-NEXT: bl __truncsfhf21347; BE-NEXT: nop1348; BE-NEXT: lfs f1, 1092(r1)1349; BE-NEXT: mr r27, r31350; BE-NEXT: bl __truncsfhf21351; BE-NEXT: nop1352; BE-NEXT: lfs f1, 1084(r1)1353; BE-NEXT: mr r26, r31354; BE-NEXT: bl __truncsfhf21355; BE-NEXT: nop1356; BE-NEXT: lfs f1, 1108(r1)1357; BE-NEXT: mr r25, r31358; BE-NEXT: bl __truncsfhf21359; BE-NEXT: nop1360; BE-NEXT: lfs f1, 1100(r1)1361; BE-NEXT: mr r24, r31362; BE-NEXT: bl __truncsfhf21363; BE-NEXT: nop1364; BE-NEXT: lfs f1, 1124(r1)1365; BE-NEXT: mr r23, r31366; BE-NEXT: bl __truncsfhf21367; BE-NEXT: nop1368; BE-NEXT: lfs f1, 1116(r1)1369; BE-NEXT: mr r22, r31370; BE-NEXT: bl __truncsfhf21371; BE-NEXT: nop1372; BE-NEXT: lfs f1, 1140(r1)1373; BE-NEXT: mr r21, r31374; BE-NEXT: bl __truncsfhf21375; BE-NEXT: nop1376; BE-NEXT: lfs f1, 1132(r1)1377; BE-NEXT: mr r20, r31378; BE-NEXT: bl __truncsfhf21379; BE-NEXT: nop1380; BE-NEXT: lfs f1, 1156(r1)1381; BE-NEXT: mr r19, r31382; BE-NEXT: bl __truncsfhf21383; BE-NEXT: nop1384; BE-NEXT: lfs f1, 1148(r1)1385; BE-NEXT: mr r18, r31386; BE-NEXT: bl __truncsfhf21387; BE-NEXT: nop1388; BE-NEXT: lfs f1, 1172(r1)1389; BE-NEXT: mr r17, r31390; BE-NEXT: bl __truncsfhf21391; BE-NEXT: nop1392; BE-NEXT: lfs f1, 1164(r1)1393; BE-NEXT: mr r16, r31394; BE-NEXT: bl __truncsfhf21395; BE-NEXT: nop1396; BE-NEXT: clrldi r3, r3, 481397; BE-NEXT: bl __extendhfsf21398; BE-NEXT: nop1399; BE-NEXT: clrldi r3, r16, 481400; BE-NEXT: stfs f1, 316(r1) # 4-byte Folded Spill1401; BE-NEXT: bl __extendhfsf21402; BE-NEXT: nop1403; BE-NEXT: clrldi r3, r17, 481404; BE-NEXT: stfs f1, 312(r1) # 4-byte Folded Spill1405; BE-NEXT: bl __extendhfsf21406; BE-NEXT: nop1407; BE-NEXT: clrldi r3, r18, 481408; BE-NEXT: stfs f1, 292(r1) # 4-byte Folded Spill1409; BE-NEXT: bl __extendhfsf21410; BE-NEXT: nop1411; BE-NEXT: clrldi r3, r19, 481412; BE-NEXT: stfs f1, 276(r1) # 4-byte Folded Spill1413; BE-NEXT: bl __extendhfsf21414; BE-NEXT: nop1415; BE-NEXT: clrldi r3, r20, 481416; BE-NEXT: stfs f1, 260(r1) # 4-byte Folded Spill1417; BE-NEXT: bl __extendhfsf21418; BE-NEXT: nop1419; BE-NEXT: clrldi r3, r21, 481420; BE-NEXT: stfs f1, 244(r1) # 4-byte Folded Spill1421; BE-NEXT: bl __extendhfsf21422; BE-NEXT: nop1423; BE-NEXT: clrldi r3, r22, 481424; BE-NEXT: stfs f1, 228(r1) # 4-byte Folded Spill1425; BE-NEXT: bl __extendhfsf21426; BE-NEXT: nop1427; BE-NEXT: clrldi r3, r23, 481428; BE-NEXT: stfs f1, 212(r1) # 4-byte Folded Spill1429; BE-NEXT: bl __extendhfsf21430; BE-NEXT: nop1431; BE-NEXT: clrldi r3, r24, 481432; BE-NEXT: stfs f1, 196(r1) # 4-byte Folded Spill1433; BE-NEXT: bl __extendhfsf21434; BE-NEXT: nop1435; BE-NEXT: clrldi r3, r25, 481436; BE-NEXT: stfs f1, 180(r1) # 4-byte Folded Spill1437; BE-NEXT: bl __extendhfsf21438; BE-NEXT: nop1439; BE-NEXT: clrldi r3, r26, 481440; BE-NEXT: stfs f1, 164(r1) # 4-byte Folded Spill1441; BE-NEXT: bl __extendhfsf21442; BE-NEXT: nop1443; BE-NEXT: clrldi r3, r27, 481444; BE-NEXT: stfs f1, 148(r1) # 4-byte Folded Spill1445; BE-NEXT: bl __extendhfsf21446; BE-NEXT: nop1447; BE-NEXT: clrldi r3, r28, 481448; BE-NEXT: stfs f1, 132(r1) # 4-byte Folded Spill1449; BE-NEXT: bl __extendhfsf21450; BE-NEXT: nop1451; BE-NEXT: clrldi r3, r29, 481452; BE-NEXT: fmr f18, f11453; BE-NEXT: bl __extendhfsf21454; BE-NEXT: nop1455; BE-NEXT: clrldi r3, r31, 481456; BE-NEXT: fmr f17, f11457; BE-NEXT: bl __extendhfsf21458; BE-NEXT: nop1459; BE-NEXT: clrldi r3, r14, 481460; BE-NEXT: fmr f16, f11461; BE-NEXT: bl __extendhfsf21462; BE-NEXT: nop1463; BE-NEXT: clrldi r3, r15, 481464; BE-NEXT: fmr f15, f11465; BE-NEXT: bl __extendhfsf21466; BE-NEXT: nop1467; BE-NEXT: ld r3, 112(r1) # 8-byte Folded Reload1468; BE-NEXT: fmr f14, f11469; BE-NEXT: clrldi r3, r3, 481470; BE-NEXT: bl __extendhfsf21471; BE-NEXT: nop1472; BE-NEXT: ld r3, 120(r1) # 8-byte Folded Reload1473; BE-NEXT: fmr f31, f11474; BE-NEXT: clrldi r3, r3, 481475; BE-NEXT: bl __extendhfsf21476; BE-NEXT: nop1477; BE-NEXT: ld r3, 136(r1) # 8-byte Folded Reload1478; BE-NEXT: fmr f30, f11479; BE-NEXT: clrldi r3, r3, 481480; BE-NEXT: bl __extendhfsf21481; BE-NEXT: nop1482; BE-NEXT: ld r3, 152(r1) # 8-byte Folded Reload1483; BE-NEXT: fmr f29, f11484; BE-NEXT: clrldi r3, r3, 481485; BE-NEXT: bl __extendhfsf21486; BE-NEXT: nop1487; BE-NEXT: ld r3, 168(r1) # 8-byte Folded Reload1488; BE-NEXT: fmr f28, f11489; BE-NEXT: clrldi r3, r3, 481490; BE-NEXT: bl __extendhfsf21491; BE-NEXT: nop1492; BE-NEXT: ld r3, 184(r1) # 8-byte Folded Reload1493; BE-NEXT: fmr f27, f11494; BE-NEXT: clrldi r3, r3, 481495; BE-NEXT: bl __extendhfsf21496; BE-NEXT: nop1497; BE-NEXT: ld r3, 200(r1) # 8-byte Folded Reload1498; BE-NEXT: fmr f26, f11499; BE-NEXT: clrldi r3, r3, 481500; BE-NEXT: bl __extendhfsf21501; BE-NEXT: nop1502; BE-NEXT: ld r3, 216(r1) # 8-byte Folded Reload1503; BE-NEXT: fmr f25, f11504; BE-NEXT: clrldi r3, r3, 481505; BE-NEXT: bl __extendhfsf21506; BE-NEXT: nop1507; BE-NEXT: ld r3, 232(r1) # 8-byte Folded Reload1508; BE-NEXT: fmr f24, f11509; BE-NEXT: clrldi r3, r3, 481510; BE-NEXT: bl __extendhfsf21511; BE-NEXT: nop1512; BE-NEXT: ld r3, 248(r1) # 8-byte Folded Reload1513; BE-NEXT: fmr f23, f11514; BE-NEXT: clrldi r3, r3, 481515; BE-NEXT: bl __extendhfsf21516; BE-NEXT: nop1517; BE-NEXT: ld r3, 264(r1) # 8-byte Folded Reload1518; BE-NEXT: fmr f22, f11519; BE-NEXT: clrldi r3, r3, 481520; BE-NEXT: bl __extendhfsf21521; BE-NEXT: nop1522; BE-NEXT: ld r3, 280(r1) # 8-byte Folded Reload1523; BE-NEXT: fmr f21, f11524; BE-NEXT: clrldi r3, r3, 481525; BE-NEXT: bl __extendhfsf21526; BE-NEXT: nop1527; BE-NEXT: ld r3, 296(r1) # 8-byte Folded Reload1528; BE-NEXT: fmr f20, f11529; BE-NEXT: clrldi r3, r3, 481530; BE-NEXT: bl __extendhfsf21531; BE-NEXT: nop1532; BE-NEXT: ld r3, 304(r1) # 8-byte Folded Reload1533; BE-NEXT: fmr f19, f11534; BE-NEXT: clrldi r3, r3, 481535; BE-NEXT: bl __extendhfsf21536; BE-NEXT: nop1537; BE-NEXT: bl llrintf1538; BE-NEXT: nop1539; BE-NEXT: fmr f1, f191540; BE-NEXT: std r3, 328(r1)1541; BE-NEXT: bl llrintf1542; BE-NEXT: nop1543; BE-NEXT: fmr f1, f201544; BE-NEXT: std r3, 320(r1)1545; BE-NEXT: bl llrintf1546; BE-NEXT: nop1547; BE-NEXT: fmr f1, f211548; BE-NEXT: std r3, 344(r1)1549; BE-NEXT: bl llrintf1550; BE-NEXT: nop1551; BE-NEXT: fmr f1, f221552; BE-NEXT: std r3, 336(r1)1553; BE-NEXT: bl llrintf1554; BE-NEXT: nop1555; BE-NEXT: fmr f1, f231556; BE-NEXT: std r3, 360(r1)1557; BE-NEXT: bl llrintf1558; BE-NEXT: nop1559; BE-NEXT: fmr f1, f241560; BE-NEXT: std r3, 352(r1)1561; BE-NEXT: bl llrintf1562; BE-NEXT: nop1563; BE-NEXT: fmr f1, f251564; BE-NEXT: std r3, 376(r1)1565; BE-NEXT: bl llrintf1566; BE-NEXT: nop1567; BE-NEXT: fmr f1, f261568; BE-NEXT: std r3, 368(r1)1569; BE-NEXT: bl llrintf1570; BE-NEXT: nop1571; BE-NEXT: fmr f1, f271572; BE-NEXT: std r3, 392(r1)1573; BE-NEXT: bl llrintf1574; BE-NEXT: nop1575; BE-NEXT: fmr f1, f281576; BE-NEXT: std r3, 384(r1)1577; BE-NEXT: bl llrintf1578; BE-NEXT: nop1579; BE-NEXT: fmr f1, f291580; BE-NEXT: std r3, 408(r1)1581; BE-NEXT: bl llrintf1582; BE-NEXT: nop1583; BE-NEXT: fmr f1, f301584; BE-NEXT: std r3, 400(r1)1585; BE-NEXT: bl llrintf1586; BE-NEXT: nop1587; BE-NEXT: fmr f1, f311588; BE-NEXT: std r3, 424(r1)1589; BE-NEXT: bl llrintf1590; BE-NEXT: nop1591; BE-NEXT: fmr f1, f141592; BE-NEXT: std r3, 416(r1)1593; BE-NEXT: bl llrintf1594; BE-NEXT: nop1595; BE-NEXT: fmr f1, f151596; BE-NEXT: std r3, 440(r1)1597; BE-NEXT: bl llrintf1598; BE-NEXT: nop1599; BE-NEXT: fmr f1, f161600; BE-NEXT: std r3, 432(r1)1601; BE-NEXT: bl llrintf1602; BE-NEXT: nop1603; BE-NEXT: fmr f1, f171604; BE-NEXT: std r3, 456(r1)1605; BE-NEXT: bl llrintf1606; BE-NEXT: nop1607; BE-NEXT: fmr f1, f181608; BE-NEXT: std r3, 448(r1)1609; BE-NEXT: bl llrintf1610; BE-NEXT: nop1611; BE-NEXT: lfs f1, 132(r1) # 4-byte Folded Reload1612; BE-NEXT: std r3, 472(r1)1613; BE-NEXT: bl llrintf1614; BE-NEXT: nop1615; BE-NEXT: lfs f1, 148(r1) # 4-byte Folded Reload1616; BE-NEXT: std r3, 464(r1)1617; BE-NEXT: bl llrintf1618; BE-NEXT: nop1619; BE-NEXT: lfs f1, 164(r1) # 4-byte Folded Reload1620; BE-NEXT: std r3, 488(r1)1621; BE-NEXT: bl llrintf1622; BE-NEXT: nop1623; BE-NEXT: lfs f1, 180(r1) # 4-byte Folded Reload1624; BE-NEXT: std r3, 480(r1)1625; BE-NEXT: bl llrintf1626; BE-NEXT: nop1627; BE-NEXT: lfs f1, 196(r1) # 4-byte Folded Reload1628; BE-NEXT: std r3, 504(r1)1629; BE-NEXT: bl llrintf1630; BE-NEXT: nop1631; BE-NEXT: lfs f1, 212(r1) # 4-byte Folded Reload1632; BE-NEXT: std r3, 496(r1)1633; BE-NEXT: bl llrintf1634; BE-NEXT: nop1635; BE-NEXT: lfs f1, 228(r1) # 4-byte Folded Reload1636; BE-NEXT: std r3, 520(r1)1637; BE-NEXT: bl llrintf1638; BE-NEXT: nop1639; BE-NEXT: lfs f1, 244(r1) # 4-byte Folded Reload1640; BE-NEXT: std r3, 512(r1)1641; BE-NEXT: bl llrintf1642; BE-NEXT: nop1643; BE-NEXT: lfs f1, 260(r1) # 4-byte Folded Reload1644; BE-NEXT: std r3, 536(r1)1645; BE-NEXT: bl llrintf1646; BE-NEXT: nop1647; BE-NEXT: lfs f1, 276(r1) # 4-byte Folded Reload1648; BE-NEXT: std r3, 528(r1)1649; BE-NEXT: bl llrintf1650; BE-NEXT: nop1651; BE-NEXT: lfs f1, 292(r1) # 4-byte Folded Reload1652; BE-NEXT: std r3, 552(r1)1653; BE-NEXT: bl llrintf1654; BE-NEXT: nop1655; BE-NEXT: lfs f1, 312(r1) # 4-byte Folded Reload1656; BE-NEXT: std r3, 544(r1)1657; BE-NEXT: bl llrintf1658; BE-NEXT: nop1659; BE-NEXT: lfs f1, 316(r1) # 4-byte Folded Reload1660; BE-NEXT: std r3, 568(r1)1661; BE-NEXT: bl llrintf1662; BE-NEXT: nop1663; BE-NEXT: std r3, 560(r1)1664; BE-NEXT: addi r3, r1, 3201665; BE-NEXT: lxvd2x vs0, 0, r31666; BE-NEXT: addi r3, r1, 3361667; BE-NEXT: lxvd2x vs1, 0, r31668; BE-NEXT: addi r3, r1, 3521669; BE-NEXT: lxvd2x vs2, 0, r31670; BE-NEXT: addi r3, r1, 3681671; BE-NEXT: lxvd2x vs3, 0, r31672; BE-NEXT: addi r3, r1, 3841673; BE-NEXT: lxvd2x vs4, 0, r31674; BE-NEXT: addi r3, r1, 4001675; BE-NEXT: lxvd2x vs5, 0, r31676; BE-NEXT: addi r3, r1, 4161677; BE-NEXT: lxvd2x vs6, 0, r31678; BE-NEXT: addi r3, r1, 4321679; BE-NEXT: lxvd2x vs7, 0, r31680; BE-NEXT: addi r3, r1, 4481681; BE-NEXT: lxvd2x vs8, 0, r31682; BE-NEXT: addi r3, r1, 4641683; BE-NEXT: lxvd2x vs9, 0, r31684; BE-NEXT: addi r3, r1, 4801685; BE-NEXT: lxvd2x vs10, 0, r31686; BE-NEXT: addi r3, r1, 4961687; BE-NEXT: lxvd2x vs11, 0, r31688; BE-NEXT: addi r3, r1, 5121689; BE-NEXT: lxvd2x vs12, 0, r31690; BE-NEXT: addi r3, r1, 5281691; BE-NEXT: lxvd2x vs13, 0, r31692; BE-NEXT: addi r3, r1, 5441693; BE-NEXT: lxvd2x v2, 0, r31694; BE-NEXT: addi r3, r1, 5601695; BE-NEXT: lxvd2x v3, 0, r31696; BE-NEXT: li r3, 2401697; BE-NEXT: stxvd2x v3, r30, r31698; BE-NEXT: li r3, 2241699; BE-NEXT: stxvd2x v2, r30, r31700; BE-NEXT: li r3, 2081701; BE-NEXT: stxvd2x vs13, r30, r31702; BE-NEXT: li r3, 1921703; BE-NEXT: stxvd2x vs12, r30, r31704; BE-NEXT: li r3, 1761705; BE-NEXT: stxvd2x vs11, r30, r31706; BE-NEXT: li r3, 1601707; BE-NEXT: stxvd2x vs10, r30, r31708; BE-NEXT: li r3, 1441709; BE-NEXT: stxvd2x vs9, r30, r31710; BE-NEXT: li r3, 1281711; BE-NEXT: stxvd2x vs8, r30, r31712; BE-NEXT: li r3, 1121713; BE-NEXT: stxvd2x vs7, r30, r31714; BE-NEXT: li r3, 961715; BE-NEXT: stxvd2x vs6, r30, r31716; BE-NEXT: li r3, 801717; BE-NEXT: stxvd2x vs5, r30, r31718; BE-NEXT: li r3, 641719; BE-NEXT: stxvd2x vs4, r30, r31720; BE-NEXT: li r3, 481721; BE-NEXT: stxvd2x vs3, r30, r31722; BE-NEXT: li r3, 321723; BE-NEXT: stxvd2x vs2, r30, r31724; BE-NEXT: li r3, 161725; BE-NEXT: stxvd2x vs1, r30, r31726; BE-NEXT: stxvd2x vs0, 0, r301727; BE-NEXT: lfd f31, 856(r1) # 8-byte Folded Reload1728; BE-NEXT: lfd f30, 848(r1) # 8-byte Folded Reload1729; BE-NEXT: lfd f29, 840(r1) # 8-byte Folded Reload1730; BE-NEXT: lfd f28, 832(r1) # 8-byte Folded Reload1731; BE-NEXT: lfd f27, 824(r1) # 8-byte Folded Reload1732; BE-NEXT: lfd f26, 816(r1) # 8-byte Folded Reload1733; BE-NEXT: lfd f25, 808(r1) # 8-byte Folded Reload1734; BE-NEXT: lfd f24, 800(r1) # 8-byte Folded Reload1735; BE-NEXT: lfd f23, 792(r1) # 8-byte Folded Reload1736; BE-NEXT: lfd f22, 784(r1) # 8-byte Folded Reload1737; BE-NEXT: lfd f21, 776(r1) # 8-byte Folded Reload1738; BE-NEXT: lfd f20, 768(r1) # 8-byte Folded Reload1739; BE-NEXT: lfd f19, 760(r1) # 8-byte Folded Reload1740; BE-NEXT: lfd f18, 752(r1) # 8-byte Folded Reload1741; BE-NEXT: lfd f17, 744(r1) # 8-byte Folded Reload1742; BE-NEXT: lfd f16, 736(r1) # 8-byte Folded Reload1743; BE-NEXT: lfd f15, 728(r1) # 8-byte Folded Reload1744; BE-NEXT: lfd f14, 720(r1) # 8-byte Folded Reload1745; BE-NEXT: ld r31, 712(r1) # 8-byte Folded Reload1746; BE-NEXT: ld r30, 704(r1) # 8-byte Folded Reload1747; BE-NEXT: ld r29, 696(r1) # 8-byte Folded Reload1748; BE-NEXT: ld r28, 688(r1) # 8-byte Folded Reload1749; BE-NEXT: ld r27, 680(r1) # 8-byte Folded Reload1750; BE-NEXT: ld r26, 672(r1) # 8-byte Folded Reload1751; BE-NEXT: ld r25, 664(r1) # 8-byte Folded Reload1752; BE-NEXT: ld r24, 656(r1) # 8-byte Folded Reload1753; BE-NEXT: ld r23, 648(r1) # 8-byte Folded Reload1754; BE-NEXT: ld r22, 640(r1) # 8-byte Folded Reload1755; BE-NEXT: ld r21, 632(r1) # 8-byte Folded Reload1756; BE-NEXT: ld r20, 624(r1) # 8-byte Folded Reload1757; BE-NEXT: ld r19, 616(r1) # 8-byte Folded Reload1758; BE-NEXT: ld r18, 608(r1) # 8-byte Folded Reload1759; BE-NEXT: ld r17, 600(r1) # 8-byte Folded Reload1760; BE-NEXT: ld r16, 592(r1) # 8-byte Folded Reload1761; BE-NEXT: ld r15, 584(r1) # 8-byte Folded Reload1762; BE-NEXT: ld r14, 576(r1) # 8-byte Folded Reload1763; BE-NEXT: addi r1, r1, 8641764; BE-NEXT: ld r0, 16(r1)1765; BE-NEXT: mtlr r01766; BE-NEXT: blr1767;1768; CHECK-LABEL: llrint_v32i64_v32f16:1769; CHECK: # %bb.0:1770; CHECK-NEXT: mflr r01771; CHECK-NEXT: stdu r1, -688(r1)1772; CHECK-NEXT: li r4, 2081773; CHECK-NEXT: std r0, 704(r1)1774; CHECK-NEXT: std r14, 400(r1) # 8-byte Folded Spill1775; CHECK-NEXT: std r15, 408(r1) # 8-byte Folded Spill1776; CHECK-NEXT: std r16, 416(r1) # 8-byte Folded Spill1777; CHECK-NEXT: std r17, 424(r1) # 8-byte Folded Spill1778; CHECK-NEXT: std r18, 432(r1) # 8-byte Folded Spill1779; CHECK-NEXT: std r19, 440(r1) # 8-byte Folded Spill1780; CHECK-NEXT: stxvd2x v20, r1, r4 # 16-byte Folded Spill1781; CHECK-NEXT: li r4, 2241782; CHECK-NEXT: std r20, 448(r1) # 8-byte Folded Spill1783; CHECK-NEXT: std r21, 456(r1) # 8-byte Folded Spill1784; CHECK-NEXT: std r22, 464(r1) # 8-byte Folded Spill1785; CHECK-NEXT: std r23, 472(r1) # 8-byte Folded Spill1786; CHECK-NEXT: std r24, 480(r1) # 8-byte Folded Spill1787; CHECK-NEXT: std r25, 488(r1) # 8-byte Folded Spill1788; CHECK-NEXT: stxvd2x v21, r1, r4 # 16-byte Folded Spill1789; CHECK-NEXT: li r4, 2401790; CHECK-NEXT: std r26, 496(r1) # 8-byte Folded Spill1791; CHECK-NEXT: std r27, 504(r1) # 8-byte Folded Spill1792; CHECK-NEXT: std r28, 512(r1) # 8-byte Folded Spill1793; CHECK-NEXT: std r29, 520(r1) # 8-byte Folded Spill1794; CHECK-NEXT: std r30, 528(r1) # 8-byte Folded Spill1795; CHECK-NEXT: mr r30, r31796; CHECK-NEXT: stxvd2x v22, r1, r4 # 16-byte Folded Spill1797; CHECK-NEXT: li r4, 2561798; CHECK-NEXT: std r31, 536(r1) # 8-byte Folded Spill1799; CHECK-NEXT: stfd f14, 544(r1) # 8-byte Folded Spill1800; CHECK-NEXT: stfd f15, 552(r1) # 8-byte Folded Spill1801; CHECK-NEXT: stfd f16, 560(r1) # 8-byte Folded Spill1802; CHECK-NEXT: stfd f17, 568(r1) # 8-byte Folded Spill1803; CHECK-NEXT: stfd f18, 576(r1) # 8-byte Folded Spill1804; CHECK-NEXT: stxvd2x v23, r1, r4 # 16-byte Folded Spill1805; CHECK-NEXT: li r4, 2721806; CHECK-NEXT: stfd f19, 584(r1) # 8-byte Folded Spill1807; CHECK-NEXT: stfd f20, 592(r1) # 8-byte Folded Spill1808; CHECK-NEXT: fmr f20, f21809; CHECK-NEXT: stfd f21, 600(r1) # 8-byte Folded Spill1810; CHECK-NEXT: fmr f21, f31811; CHECK-NEXT: stfd f22, 608(r1) # 8-byte Folded Spill1812; CHECK-NEXT: fmr f22, f41813; CHECK-NEXT: stxvd2x v24, r1, r4 # 16-byte Folded Spill1814; CHECK-NEXT: li r4, 2881815; CHECK-NEXT: stfd f23, 616(r1) # 8-byte Folded Spill1816; CHECK-NEXT: fmr f23, f51817; CHECK-NEXT: stfd f24, 624(r1) # 8-byte Folded Spill1818; CHECK-NEXT: fmr f24, f61819; CHECK-NEXT: stfd f25, 632(r1) # 8-byte Folded Spill1820; CHECK-NEXT: fmr f25, f71821; CHECK-NEXT: stxvd2x v25, r1, r4 # 16-byte Folded Spill1822; CHECK-NEXT: li r4, 3041823; CHECK-NEXT: stfd f26, 640(r1) # 8-byte Folded Spill1824; CHECK-NEXT: fmr f26, f81825; CHECK-NEXT: stfd f27, 648(r1) # 8-byte Folded Spill1826; CHECK-NEXT: fmr f27, f91827; CHECK-NEXT: stfd f28, 656(r1) # 8-byte Folded Spill1828; CHECK-NEXT: fmr f28, f101829; CHECK-NEXT: stxvd2x v26, r1, r4 # 16-byte Folded Spill1830; CHECK-NEXT: li r4, 3201831; CHECK-NEXT: stfd f29, 664(r1) # 8-byte Folded Spill1832; CHECK-NEXT: fmr f29, f111833; CHECK-NEXT: stfd f30, 672(r1) # 8-byte Folded Spill1834; CHECK-NEXT: fmr f30, f121835; CHECK-NEXT: stfd f31, 680(r1) # 8-byte Folded Spill1836; CHECK-NEXT: fmr f31, f131837; CHECK-NEXT: stxvd2x v27, r1, r4 # 16-byte Folded Spill1838; CHECK-NEXT: li r4, 3361839; CHECK-NEXT: stxvd2x v28, r1, r4 # 16-byte Folded Spill1840; CHECK-NEXT: li r4, 3521841; CHECK-NEXT: stxvd2x v29, r1, r4 # 16-byte Folded Spill1842; CHECK-NEXT: li r4, 3681843; CHECK-NEXT: stxvd2x v30, r1, r4 # 16-byte Folded Spill1844; CHECK-NEXT: li r4, 3841845; CHECK-NEXT: stxvd2x v31, r1, r4 # 16-byte Folded Spill1846; CHECK-NEXT: bl __truncsfhf21847; CHECK-NEXT: nop1848; CHECK-NEXT: fmr f1, f201849; CHECK-NEXT: std r3, 176(r1) # 8-byte Folded Spill1850; CHECK-NEXT: bl __truncsfhf21851; CHECK-NEXT: nop1852; CHECK-NEXT: fmr f1, f211853; CHECK-NEXT: std r3, 160(r1) # 8-byte Folded Spill1854; CHECK-NEXT: bl __truncsfhf21855; CHECK-NEXT: nop1856; CHECK-NEXT: fmr f1, f221857; CHECK-NEXT: std r3, 144(r1) # 8-byte Folded Spill1858; CHECK-NEXT: bl __truncsfhf21859; CHECK-NEXT: nop1860; CHECK-NEXT: fmr f1, f231861; CHECK-NEXT: std r3, 128(r1) # 8-byte Folded Spill1862; CHECK-NEXT: bl __truncsfhf21863; CHECK-NEXT: nop1864; CHECK-NEXT: fmr f1, f241865; CHECK-NEXT: std r3, 120(r1) # 8-byte Folded Spill1866; CHECK-NEXT: bl __truncsfhf21867; CHECK-NEXT: nop1868; CHECK-NEXT: fmr f1, f251869; CHECK-NEXT: std r3, 112(r1) # 8-byte Folded Spill1870; CHECK-NEXT: bl __truncsfhf21871; CHECK-NEXT: nop1872; CHECK-NEXT: fmr f1, f261873; CHECK-NEXT: std r3, 104(r1) # 8-byte Folded Spill1874; CHECK-NEXT: bl __truncsfhf21875; CHECK-NEXT: nop1876; CHECK-NEXT: fmr f1, f271877; CHECK-NEXT: std r3, 96(r1) # 8-byte Folded Spill1878; CHECK-NEXT: bl __truncsfhf21879; CHECK-NEXT: nop1880; CHECK-NEXT: fmr f1, f281881; CHECK-NEXT: std r3, 88(r1) # 8-byte Folded Spill1882; CHECK-NEXT: bl __truncsfhf21883; CHECK-NEXT: nop1884; CHECK-NEXT: fmr f1, f291885; CHECK-NEXT: std r3, 80(r1) # 8-byte Folded Spill1886; CHECK-NEXT: bl __truncsfhf21887; CHECK-NEXT: nop1888; CHECK-NEXT: fmr f1, f301889; CHECK-NEXT: std r3, 72(r1) # 8-byte Folded Spill1890; CHECK-NEXT: bl __truncsfhf21891; CHECK-NEXT: nop1892; CHECK-NEXT: fmr f1, f311893; CHECK-NEXT: std r3, 64(r1) # 8-byte Folded Spill1894; CHECK-NEXT: bl __truncsfhf21895; CHECK-NEXT: nop1896; CHECK-NEXT: lfs f1, 832(r1)1897; CHECK-NEXT: std r3, 56(r1) # 8-byte Folded Spill1898; CHECK-NEXT: bl __truncsfhf21899; CHECK-NEXT: nop1900; CHECK-NEXT: lfs f1, 840(r1)1901; CHECK-NEXT: std r3, 48(r1) # 8-byte Folded Spill1902; CHECK-NEXT: bl __truncsfhf21903; CHECK-NEXT: nop1904; CHECK-NEXT: lfs f1, 848(r1)1905; CHECK-NEXT: mr r15, r31906; CHECK-NEXT: bl __truncsfhf21907; CHECK-NEXT: nop1908; CHECK-NEXT: lfs f1, 856(r1)1909; CHECK-NEXT: mr r14, r31910; CHECK-NEXT: bl __truncsfhf21911; CHECK-NEXT: nop1912; CHECK-NEXT: lfs f1, 864(r1)1913; CHECK-NEXT: mr r31, r31914; CHECK-NEXT: bl __truncsfhf21915; CHECK-NEXT: nop1916; CHECK-NEXT: lfs f1, 872(r1)1917; CHECK-NEXT: mr r29, r31918; CHECK-NEXT: bl __truncsfhf21919; CHECK-NEXT: nop1920; CHECK-NEXT: lfs f1, 880(r1)1921; CHECK-NEXT: mr r28, r31922; CHECK-NEXT: bl __truncsfhf21923; CHECK-NEXT: nop1924; CHECK-NEXT: lfs f1, 888(r1)1925; CHECK-NEXT: mr r27, r31926; CHECK-NEXT: bl __truncsfhf21927; CHECK-NEXT: nop1928; CHECK-NEXT: lfs f1, 896(r1)1929; CHECK-NEXT: mr r26, r31930; CHECK-NEXT: bl __truncsfhf21931; CHECK-NEXT: nop1932; CHECK-NEXT: lfs f1, 904(r1)1933; CHECK-NEXT: mr r25, r31934; CHECK-NEXT: bl __truncsfhf21935; CHECK-NEXT: nop1936; CHECK-NEXT: lfs f1, 912(r1)1937; CHECK-NEXT: mr r24, r31938; CHECK-NEXT: bl __truncsfhf21939; CHECK-NEXT: nop1940; CHECK-NEXT: lfs f1, 920(r1)1941; CHECK-NEXT: mr r23, r31942; CHECK-NEXT: bl __truncsfhf21943; CHECK-NEXT: nop1944; CHECK-NEXT: lfs f1, 928(r1)1945; CHECK-NEXT: mr r22, r31946; CHECK-NEXT: bl __truncsfhf21947; CHECK-NEXT: nop1948; CHECK-NEXT: lfs f1, 936(r1)1949; CHECK-NEXT: mr r21, r31950; CHECK-NEXT: bl __truncsfhf21951; CHECK-NEXT: nop1952; CHECK-NEXT: lfs f1, 944(r1)1953; CHECK-NEXT: mr r20, r31954; CHECK-NEXT: bl __truncsfhf21955; CHECK-NEXT: nop1956; CHECK-NEXT: lfs f1, 952(r1)1957; CHECK-NEXT: mr r19, r31958; CHECK-NEXT: bl __truncsfhf21959; CHECK-NEXT: nop1960; CHECK-NEXT: lfs f1, 960(r1)1961; CHECK-NEXT: mr r18, r31962; CHECK-NEXT: bl __truncsfhf21963; CHECK-NEXT: nop1964; CHECK-NEXT: lfs f1, 968(r1)1965; CHECK-NEXT: mr r17, r31966; CHECK-NEXT: bl __truncsfhf21967; CHECK-NEXT: nop1968; CHECK-NEXT: lfs f1, 976(r1)1969; CHECK-NEXT: mr r16, r31970; CHECK-NEXT: bl __truncsfhf21971; CHECK-NEXT: nop1972; CHECK-NEXT: clrldi r3, r3, 481973; CHECK-NEXT: bl __extendhfsf21974; CHECK-NEXT: nop1975; CHECK-NEXT: li r3, 2041976; CHECK-NEXT: stxsspx f1, r1, r3 # 4-byte Folded Spill1977; CHECK-NEXT: clrldi r3, r16, 481978; CHECK-NEXT: bl __extendhfsf21979; CHECK-NEXT: nop1980; CHECK-NEXT: li r3, 2001981; CHECK-NEXT: stxsspx f1, r1, r3 # 4-byte Folded Spill1982; CHECK-NEXT: clrldi r3, r17, 481983; CHECK-NEXT: bl __extendhfsf21984; CHECK-NEXT: nop1985; CHECK-NEXT: clrldi r3, r18, 481986; CHECK-NEXT: fmr f29, f11987; CHECK-NEXT: bl __extendhfsf21988; CHECK-NEXT: nop1989; CHECK-NEXT: clrldi r3, r19, 481990; CHECK-NEXT: fmr f28, f11991; CHECK-NEXT: bl __extendhfsf21992; CHECK-NEXT: nop1993; CHECK-NEXT: clrldi r3, r20, 481994; CHECK-NEXT: fmr f27, f11995; CHECK-NEXT: bl __extendhfsf21996; CHECK-NEXT: nop1997; CHECK-NEXT: clrldi r3, r21, 481998; CHECK-NEXT: fmr f26, f11999; CHECK-NEXT: bl __extendhfsf22000; CHECK-NEXT: nop2001; CHECK-NEXT: clrldi r3, r22, 482002; CHECK-NEXT: fmr f25, f12003; CHECK-NEXT: bl __extendhfsf22004; CHECK-NEXT: nop2005; CHECK-NEXT: clrldi r3, r23, 482006; CHECK-NEXT: fmr f24, f12007; CHECK-NEXT: bl __extendhfsf22008; CHECK-NEXT: nop2009; CHECK-NEXT: clrldi r3, r24, 482010; CHECK-NEXT: fmr f23, f12011; CHECK-NEXT: bl __extendhfsf22012; CHECK-NEXT: nop2013; CHECK-NEXT: clrldi r3, r25, 482014; CHECK-NEXT: fmr f22, f12015; CHECK-NEXT: bl __extendhfsf22016; CHECK-NEXT: nop2017; CHECK-NEXT: clrldi r3, r26, 482018; CHECK-NEXT: fmr f21, f12019; CHECK-NEXT: bl __extendhfsf22020; CHECK-NEXT: nop2021; CHECK-NEXT: clrldi r3, r27, 482022; CHECK-NEXT: fmr f20, f12023; CHECK-NEXT: bl __extendhfsf22024; CHECK-NEXT: nop2025; CHECK-NEXT: clrldi r3, r28, 482026; CHECK-NEXT: fmr f19, f12027; CHECK-NEXT: bl __extendhfsf22028; CHECK-NEXT: nop2029; CHECK-NEXT: clrldi r3, r29, 482030; CHECK-NEXT: fmr f18, f12031; CHECK-NEXT: bl __extendhfsf22032; CHECK-NEXT: nop2033; CHECK-NEXT: clrldi r3, r31, 482034; CHECK-NEXT: fmr f17, f12035; CHECK-NEXT: bl __extendhfsf22036; CHECK-NEXT: nop2037; CHECK-NEXT: clrldi r3, r14, 482038; CHECK-NEXT: fmr f16, f12039; CHECK-NEXT: bl __extendhfsf22040; CHECK-NEXT: nop2041; CHECK-NEXT: clrldi r3, r15, 482042; CHECK-NEXT: fmr f15, f12043; CHECK-NEXT: bl __extendhfsf22044; CHECK-NEXT: nop2045; CHECK-NEXT: ld r3, 48(r1) # 8-byte Folded Reload2046; CHECK-NEXT: fmr f14, f12047; CHECK-NEXT: clrldi r3, r3, 482048; CHECK-NEXT: bl __extendhfsf22049; CHECK-NEXT: nop2050; CHECK-NEXT: ld r3, 56(r1) # 8-byte Folded Reload2051; CHECK-NEXT: fmr f30, f12052; CHECK-NEXT: clrldi r3, r3, 482053; CHECK-NEXT: bl __extendhfsf22054; CHECK-NEXT: nop2055; CHECK-NEXT: ld r3, 64(r1) # 8-byte Folded Reload2056; CHECK-NEXT: xxlor v30, f1, f12057; CHECK-NEXT: clrldi r3, r3, 482058; CHECK-NEXT: bl __extendhfsf22059; CHECK-NEXT: nop2060; CHECK-NEXT: ld r3, 72(r1) # 8-byte Folded Reload2061; CHECK-NEXT: xxlor v29, f1, f12062; CHECK-NEXT: clrldi r3, r3, 482063; CHECK-NEXT: bl __extendhfsf22064; CHECK-NEXT: nop2065; CHECK-NEXT: ld r3, 80(r1) # 8-byte Folded Reload2066; CHECK-NEXT: xxlor v28, f1, f12067; CHECK-NEXT: clrldi r3, r3, 482068; CHECK-NEXT: bl __extendhfsf22069; CHECK-NEXT: nop2070; CHECK-NEXT: ld r3, 88(r1) # 8-byte Folded Reload2071; CHECK-NEXT: xxlor v27, f1, f12072; CHECK-NEXT: clrldi r3, r3, 482073; CHECK-NEXT: bl __extendhfsf22074; CHECK-NEXT: nop2075; CHECK-NEXT: ld r3, 96(r1) # 8-byte Folded Reload2076; CHECK-NEXT: xxlor v26, f1, f12077; CHECK-NEXT: clrldi r3, r3, 482078; CHECK-NEXT: bl __extendhfsf22079; CHECK-NEXT: nop2080; CHECK-NEXT: ld r3, 104(r1) # 8-byte Folded Reload2081; CHECK-NEXT: xxlor v25, f1, f12082; CHECK-NEXT: clrldi r3, r3, 482083; CHECK-NEXT: bl __extendhfsf22084; CHECK-NEXT: nop2085; CHECK-NEXT: ld r3, 112(r1) # 8-byte Folded Reload2086; CHECK-NEXT: xxlor v24, f1, f12087; CHECK-NEXT: clrldi r3, r3, 482088; CHECK-NEXT: bl __extendhfsf22089; CHECK-NEXT: nop2090; CHECK-NEXT: ld r3, 120(r1) # 8-byte Folded Reload2091; CHECK-NEXT: xxlor v23, f1, f12092; CHECK-NEXT: clrldi r3, r3, 482093; CHECK-NEXT: bl __extendhfsf22094; CHECK-NEXT: nop2095; CHECK-NEXT: ld r3, 128(r1) # 8-byte Folded Reload2096; CHECK-NEXT: xxlor v22, f1, f12097; CHECK-NEXT: clrldi r3, r3, 482098; CHECK-NEXT: bl __extendhfsf22099; CHECK-NEXT: nop2100; CHECK-NEXT: ld r3, 144(r1) # 8-byte Folded Reload2101; CHECK-NEXT: xxlor v21, f1, f12102; CHECK-NEXT: clrldi r3, r3, 482103; CHECK-NEXT: bl __extendhfsf22104; CHECK-NEXT: nop2105; CHECK-NEXT: ld r3, 160(r1) # 8-byte Folded Reload2106; CHECK-NEXT: xxlor v20, f1, f12107; CHECK-NEXT: clrldi r3, r3, 482108; CHECK-NEXT: bl __extendhfsf22109; CHECK-NEXT: nop2110; CHECK-NEXT: ld r3, 176(r1) # 8-byte Folded Reload2111; CHECK-NEXT: fmr f31, f12112; CHECK-NEXT: clrldi r3, r3, 482113; CHECK-NEXT: bl __extendhfsf22114; CHECK-NEXT: nop2115; CHECK-NEXT: bl llrintf2116; CHECK-NEXT: nop2117; CHECK-NEXT: fmr f1, f312118; CHECK-NEXT: mtvsrd v31, r32119; CHECK-NEXT: bl llrintf2120; CHECK-NEXT: nop2121; CHECK-NEXT: mtfprd f0, r32122; CHECK-NEXT: li r3, 1762123; CHECK-NEXT: xxlor f1, v20, v202124; CHECK-NEXT: xxmrghd vs0, vs0, v312125; CHECK-NEXT: stxvd2x vs0, r1, r3 # 16-byte Folded Spill2126; CHECK-NEXT: bl llrintf2127; CHECK-NEXT: nop2128; CHECK-NEXT: xxlor f1, v21, v212129; CHECK-NEXT: mtvsrd v31, r32130; CHECK-NEXT: bl llrintf2131; CHECK-NEXT: nop2132; CHECK-NEXT: mtfprd f0, r32133; CHECK-NEXT: li r3, 1602134; CHECK-NEXT: xxlor f1, v22, v222135; CHECK-NEXT: xxmrghd vs0, vs0, v312136; CHECK-NEXT: stxvd2x vs0, r1, r3 # 16-byte Folded Spill2137; CHECK-NEXT: bl llrintf2138; CHECK-NEXT: nop2139; CHECK-NEXT: xxlor f1, v23, v232140; CHECK-NEXT: mtvsrd v31, r32141; CHECK-NEXT: bl llrintf2142; CHECK-NEXT: nop2143; CHECK-NEXT: mtfprd f0, r32144; CHECK-NEXT: li r3, 1442145; CHECK-NEXT: xxlor f1, v24, v242146; CHECK-NEXT: xxmrghd vs0, vs0, v312147; CHECK-NEXT: stxvd2x vs0, r1, r3 # 16-byte Folded Spill2148; CHECK-NEXT: bl llrintf2149; CHECK-NEXT: nop2150; CHECK-NEXT: xxlor f1, v25, v252151; CHECK-NEXT: mtvsrd v31, r32152; CHECK-NEXT: bl llrintf2153; CHECK-NEXT: nop2154; CHECK-NEXT: mtfprd f0, r32155; CHECK-NEXT: li r3, 1282156; CHECK-NEXT: xxlor f1, v26, v262157; CHECK-NEXT: xxmrghd vs0, vs0, v312158; CHECK-NEXT: stxvd2x vs0, r1, r3 # 16-byte Folded Spill2159; CHECK-NEXT: bl llrintf2160; CHECK-NEXT: nop2161; CHECK-NEXT: xxlor f1, v27, v272162; CHECK-NEXT: mtvsrd v31, r32163; CHECK-NEXT: bl llrintf2164; CHECK-NEXT: nop2165; CHECK-NEXT: mtfprd f0, r32166; CHECK-NEXT: xxlor f1, v28, v282167; CHECK-NEXT: xxmrghd v27, vs0, v312168; CHECK-NEXT: bl llrintf2169; CHECK-NEXT: nop2170; CHECK-NEXT: xxlor f1, v29, v292171; CHECK-NEXT: mtvsrd v31, r32172; CHECK-NEXT: bl llrintf2173; CHECK-NEXT: nop2174; CHECK-NEXT: mtfprd f0, r32175; CHECK-NEXT: xxlor f1, v30, v302176; CHECK-NEXT: xxmrghd v29, vs0, v312177; CHECK-NEXT: bl llrintf2178; CHECK-NEXT: nop2179; CHECK-NEXT: fmr f1, f302180; CHECK-NEXT: mtvsrd v31, r32181; CHECK-NEXT: bl llrintf2182; CHECK-NEXT: nop2183; CHECK-NEXT: fmr f1, f142184; CHECK-NEXT: mtfprd f0, r32185; CHECK-NEXT: xxmrghd v31, vs0, v312186; CHECK-NEXT: bl llrintf2187; CHECK-NEXT: nop2188; CHECK-NEXT: fmr f1, f152189; CHECK-NEXT: mtvsrd v30, r32190; CHECK-NEXT: bl llrintf2191; CHECK-NEXT: nop2192; CHECK-NEXT: fmr f1, f162193; CHECK-NEXT: mtfprd f0, r32194; CHECK-NEXT: xxmrghd v30, vs0, v302195; CHECK-NEXT: bl llrintf2196; CHECK-NEXT: nop2197; CHECK-NEXT: fmr f1, f172198; CHECK-NEXT: mtvsrd v28, r32199; CHECK-NEXT: bl llrintf2200; CHECK-NEXT: nop2201; CHECK-NEXT: fmr f1, f182202; CHECK-NEXT: mtfprd f0, r32203; CHECK-NEXT: xxmrghd v28, vs0, v282204; CHECK-NEXT: bl llrintf2205; CHECK-NEXT: nop2206; CHECK-NEXT: fmr f1, f192207; CHECK-NEXT: mtvsrd v26, r32208; CHECK-NEXT: bl llrintf2209; CHECK-NEXT: nop2210; CHECK-NEXT: fmr f1, f202211; CHECK-NEXT: mtfprd f0, r32212; CHECK-NEXT: xxmrghd v26, vs0, v262213; CHECK-NEXT: bl llrintf2214; CHECK-NEXT: nop2215; CHECK-NEXT: fmr f1, f212216; CHECK-NEXT: mtvsrd v24, r32217; CHECK-NEXT: bl llrintf2218; CHECK-NEXT: nop2219; CHECK-NEXT: fmr f1, f222220; CHECK-NEXT: mtfprd f0, r32221; CHECK-NEXT: xxmrghd v24, vs0, v242222; CHECK-NEXT: bl llrintf2223; CHECK-NEXT: nop2224; CHECK-NEXT: fmr f1, f232225; CHECK-NEXT: mtvsrd v22, r32226; CHECK-NEXT: bl llrintf2227; CHECK-NEXT: nop2228; CHECK-NEXT: fmr f1, f242229; CHECK-NEXT: mtfprd f0, r32230; CHECK-NEXT: xxmrghd v22, vs0, v222231; CHECK-NEXT: bl llrintf2232; CHECK-NEXT: nop2233; CHECK-NEXT: fmr f1, f252234; CHECK-NEXT: mtvsrd v20, r32235; CHECK-NEXT: bl llrintf2236; CHECK-NEXT: nop2237; CHECK-NEXT: fmr f1, f262238; CHECK-NEXT: mtfprd f0, r32239; CHECK-NEXT: xxmrghd v20, vs0, v202240; CHECK-NEXT: bl llrintf2241; CHECK-NEXT: nop2242; CHECK-NEXT: fmr f1, f272243; CHECK-NEXT: mtvsrd v21, r32244; CHECK-NEXT: bl llrintf2245; CHECK-NEXT: nop2246; CHECK-NEXT: fmr f1, f282247; CHECK-NEXT: mtfprd f0, r32248; CHECK-NEXT: xxmrghd v21, vs0, v212249; CHECK-NEXT: bl llrintf2250; CHECK-NEXT: nop2251; CHECK-NEXT: fmr f1, f292252; CHECK-NEXT: mtvsrd v23, r32253; CHECK-NEXT: bl llrintf2254; CHECK-NEXT: nop2255; CHECK-NEXT: mtfprd f0, r32256; CHECK-NEXT: li r3, 2002257; CHECK-NEXT: lxsspx f1, r1, r3 # 4-byte Folded Reload2258; CHECK-NEXT: xxmrghd v23, vs0, v232259; CHECK-NEXT: bl llrintf2260; CHECK-NEXT: nop2261; CHECK-NEXT: mtvsrd v25, r32262; CHECK-NEXT: li r3, 2042263; CHECK-NEXT: lxsspx f1, r1, r3 # 4-byte Folded Reload2264; CHECK-NEXT: bl llrintf2265; CHECK-NEXT: nop2266; CHECK-NEXT: mtfprd f0, r32267; CHECK-NEXT: li r3, 2402268; CHECK-NEXT: xxswapd vs1, v232269; CHECK-NEXT: li r4, 1282270; CHECK-NEXT: xxswapd vs2, v212271; CHECK-NEXT: xxswapd vs3, v312272; CHECK-NEXT: xxmrghd v2, vs0, v252273; CHECK-NEXT: xxswapd vs0, v22274; CHECK-NEXT: stxvd2x vs0, r30, r32275; CHECK-NEXT: li r3, 2242276; CHECK-NEXT: stxvd2x vs1, r30, r32277; CHECK-NEXT: li r3, 2082278; CHECK-NEXT: stxvd2x vs2, r30, r32279; CHECK-NEXT: li r3, 1922280; CHECK-NEXT: xxswapd vs0, v202281; CHECK-NEXT: stxvd2x vs0, r30, r32282; CHECK-NEXT: li r3, 1762283; CHECK-NEXT: xxswapd vs1, v222284; CHECK-NEXT: stxvd2x vs1, r30, r32285; CHECK-NEXT: li r3, 1602286; CHECK-NEXT: xxswapd vs2, v282287; CHECK-NEXT: xxswapd vs0, v242288; CHECK-NEXT: stxvd2x vs0, r30, r32289; CHECK-NEXT: li r3, 1442290; CHECK-NEXT: xxswapd vs1, v262291; CHECK-NEXT: stxvd2x vs1, r30, r32292; CHECK-NEXT: li r3, 1282293; CHECK-NEXT: stxvd2x vs2, r30, r32294; CHECK-NEXT: li r3, 1122295; CHECK-NEXT: xxswapd vs0, v302296; CHECK-NEXT: stxvd2x vs0, r30, r32297; CHECK-NEXT: li r3, 962298; CHECK-NEXT: stxvd2x vs3, r30, r32299; CHECK-NEXT: li r3, 802300; CHECK-NEXT: lxvd2x vs2, r1, r4 # 16-byte Folded Reload2301; CHECK-NEXT: li r4, 1442302; CHECK-NEXT: xxswapd vs1, v292303; CHECK-NEXT: stxvd2x vs1, r30, r32304; CHECK-NEXT: li r3, 642305; CHECK-NEXT: lxvd2x vs1, r1, r4 # 16-byte Folded Reload2306; CHECK-NEXT: li r4, 1602307; CHECK-NEXT: lxvd2x vs3, r1, r4 # 16-byte Folded Reload2308; CHECK-NEXT: li r4, 1762309; CHECK-NEXT: lxvd2x vs4, r1, r4 # 16-byte Folded Reload2310; CHECK-NEXT: xxswapd vs0, v272311; CHECK-NEXT: stxvd2x vs0, r30, r32312; CHECK-NEXT: li r3, 482313; CHECK-NEXT: xxswapd vs2, vs22314; CHECK-NEXT: stxvd2x vs2, r30, r32315; CHECK-NEXT: li r3, 322316; CHECK-NEXT: xxswapd vs1, vs12317; CHECK-NEXT: stxvd2x vs1, r30, r32318; CHECK-NEXT: li r3, 162319; CHECK-NEXT: xxswapd vs3, vs32320; CHECK-NEXT: stxvd2x vs3, r30, r32321; CHECK-NEXT: li r3, 3842322; CHECK-NEXT: xxswapd vs4, vs42323; CHECK-NEXT: stxvd2x vs4, 0, r302324; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload2325; CHECK-NEXT: li r3, 3682326; CHECK-NEXT: lfd f31, 680(r1) # 8-byte Folded Reload2327; CHECK-NEXT: lfd f30, 672(r1) # 8-byte Folded Reload2328; CHECK-NEXT: lfd f29, 664(r1) # 8-byte Folded Reload2329; CHECK-NEXT: lfd f28, 656(r1) # 8-byte Folded Reload2330; CHECK-NEXT: lfd f27, 648(r1) # 8-byte Folded Reload2331; CHECK-NEXT: lfd f26, 640(r1) # 8-byte Folded Reload2332; CHECK-NEXT: lfd f25, 632(r1) # 8-byte Folded Reload2333; CHECK-NEXT: lfd f24, 624(r1) # 8-byte Folded Reload2334; CHECK-NEXT: lfd f23, 616(r1) # 8-byte Folded Reload2335; CHECK-NEXT: lfd f22, 608(r1) # 8-byte Folded Reload2336; CHECK-NEXT: lfd f21, 600(r1) # 8-byte Folded Reload2337; CHECK-NEXT: lfd f20, 592(r1) # 8-byte Folded Reload2338; CHECK-NEXT: lfd f19, 584(r1) # 8-byte Folded Reload2339; CHECK-NEXT: lfd f18, 576(r1) # 8-byte Folded Reload2340; CHECK-NEXT: lfd f17, 568(r1) # 8-byte Folded Reload2341; CHECK-NEXT: lfd f16, 560(r1) # 8-byte Folded Reload2342; CHECK-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload2343; CHECK-NEXT: li r3, 3522344; CHECK-NEXT: lfd f15, 552(r1) # 8-byte Folded Reload2345; CHECK-NEXT: lfd f14, 544(r1) # 8-byte Folded Reload2346; CHECK-NEXT: ld r31, 536(r1) # 8-byte Folded Reload2347; CHECK-NEXT: ld r30, 528(r1) # 8-byte Folded Reload2348; CHECK-NEXT: ld r29, 520(r1) # 8-byte Folded Reload2349; CHECK-NEXT: ld r28, 512(r1) # 8-byte Folded Reload2350; CHECK-NEXT: lxvd2x v29, r1, r3 # 16-byte Folded Reload2351; CHECK-NEXT: li r3, 3362352; CHECK-NEXT: ld r27, 504(r1) # 8-byte Folded Reload2353; CHECK-NEXT: ld r26, 496(r1) # 8-byte Folded Reload2354; CHECK-NEXT: ld r25, 488(r1) # 8-byte Folded Reload2355; CHECK-NEXT: ld r24, 480(r1) # 8-byte Folded Reload2356; CHECK-NEXT: ld r23, 472(r1) # 8-byte Folded Reload2357; CHECK-NEXT: ld r22, 464(r1) # 8-byte Folded Reload2358; CHECK-NEXT: lxvd2x v28, r1, r3 # 16-byte Folded Reload2359; CHECK-NEXT: li r3, 3202360; CHECK-NEXT: ld r21, 456(r1) # 8-byte Folded Reload2361; CHECK-NEXT: ld r20, 448(r1) # 8-byte Folded Reload2362; CHECK-NEXT: ld r19, 440(r1) # 8-byte Folded Reload2363; CHECK-NEXT: ld r18, 432(r1) # 8-byte Folded Reload2364; CHECK-NEXT: ld r17, 424(r1) # 8-byte Folded Reload2365; CHECK-NEXT: ld r16, 416(r1) # 8-byte Folded Reload2366; CHECK-NEXT: lxvd2x v27, r1, r3 # 16-byte Folded Reload2367; CHECK-NEXT: li r3, 3042368; CHECK-NEXT: ld r15, 408(r1) # 8-byte Folded Reload2369; CHECK-NEXT: ld r14, 400(r1) # 8-byte Folded Reload2370; CHECK-NEXT: lxvd2x v26, r1, r3 # 16-byte Folded Reload2371; CHECK-NEXT: li r3, 2882372; CHECK-NEXT: lxvd2x v25, r1, r3 # 16-byte Folded Reload2373; CHECK-NEXT: li r3, 2722374; CHECK-NEXT: lxvd2x v24, r1, r3 # 16-byte Folded Reload2375; CHECK-NEXT: li r3, 2562376; CHECK-NEXT: lxvd2x v23, r1, r3 # 16-byte Folded Reload2377; CHECK-NEXT: li r3, 2402378; CHECK-NEXT: lxvd2x v22, r1, r3 # 16-byte Folded Reload2379; CHECK-NEXT: li r3, 2242380; CHECK-NEXT: lxvd2x v21, r1, r3 # 16-byte Folded Reload2381; CHECK-NEXT: li r3, 2082382; CHECK-NEXT: lxvd2x v20, r1, r3 # 16-byte Folded Reload2383; CHECK-NEXT: addi r1, r1, 6882384; CHECK-NEXT: ld r0, 16(r1)2385; CHECK-NEXT: mtlr r02386; CHECK-NEXT: blr2387 %a = call <32 x i64> @llvm.llrint.v32i64.v32f16(<32 x half> %x)2388 ret <32 x i64> %a2389}2390declare <32 x i64> @llvm.llrint.v32i64.v32f16(<32 x half>)2391 2392define <1 x i64> @llrint_v1i64_v1f32(<1 x float> %x) nounwind {2393; BE-LABEL: llrint_v1i64_v1f32:2394; BE: # %bb.0:2395; BE-NEXT: mflr r02396; BE-NEXT: stdu r1, -112(r1)2397; BE-NEXT: std r0, 128(r1)2398; BE-NEXT: bl llrintf2399; BE-NEXT: nop2400; BE-NEXT: addi r1, r1, 1122401; BE-NEXT: ld r0, 16(r1)2402; BE-NEXT: mtlr r02403; BE-NEXT: blr2404;2405; CHECK-LABEL: llrint_v1i64_v1f32:2406; CHECK: # %bb.0:2407; CHECK-NEXT: mflr r02408; CHECK-NEXT: stdu r1, -32(r1)2409; CHECK-NEXT: std r0, 48(r1)2410; CHECK-NEXT: bl llrintf2411; CHECK-NEXT: nop2412; CHECK-NEXT: addi r1, r1, 322413; CHECK-NEXT: ld r0, 16(r1)2414; CHECK-NEXT: mtlr r02415; CHECK-NEXT: blr2416 %a = call <1 x i64> @llvm.llrint.v1i64.v1f32(<1 x float> %x)2417 ret <1 x i64> %a2418}2419declare <1 x i64> @llvm.llrint.v1i64.v1f32(<1 x float>)2420 2421define <2 x i64> @llrint_v2i64_v2f32(<2 x float> %x) nounwind {2422; BE-LABEL: llrint_v2i64_v2f32:2423; BE: # %bb.0:2424; BE-NEXT: mflr r02425; BE-NEXT: stdu r1, -144(r1)2426; BE-NEXT: addi r3, r1, 1122427; BE-NEXT: std r0, 160(r1)2428; BE-NEXT: stxvw4x v2, 0, r32429; BE-NEXT: lfs f1, 116(r1)2430; BE-NEXT: bl llrintf2431; BE-NEXT: nop2432; BE-NEXT: lfs f1, 112(r1)2433; BE-NEXT: std r3, 136(r1)2434; BE-NEXT: bl llrintf2435; BE-NEXT: nop2436; BE-NEXT: std r3, 128(r1)2437; BE-NEXT: addi r3, r1, 1282438; BE-NEXT: lxvd2x v2, 0, r32439; BE-NEXT: addi r1, r1, 1442440; BE-NEXT: ld r0, 16(r1)2441; BE-NEXT: mtlr r02442; BE-NEXT: blr2443;2444; CHECK-LABEL: llrint_v2i64_v2f32:2445; CHECK: # %bb.0:2446; CHECK-NEXT: mflr r02447; CHECK-NEXT: stdu r1, -64(r1)2448; CHECK-NEXT: xxsldwi vs0, v2, v2, 32449; CHECK-NEXT: li r3, 482450; CHECK-NEXT: std r0, 80(r1)2451; CHECK-NEXT: xscvspdpn f1, vs02452; CHECK-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill2453; CHECK-NEXT: vmr v31, v22454; CHECK-NEXT: bl llrintf2455; CHECK-NEXT: nop2456; CHECK-NEXT: xxswapd vs0, v312457; CHECK-NEXT: mtvsrd v31, r32458; CHECK-NEXT: xscvspdpn f1, vs02459; CHECK-NEXT: bl llrintf2460; CHECK-NEXT: nop2461; CHECK-NEXT: mtfprd f0, r32462; CHECK-NEXT: li r3, 482463; CHECK-NEXT: xxmrghd v2, vs0, v312464; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload2465; CHECK-NEXT: addi r1, r1, 642466; CHECK-NEXT: ld r0, 16(r1)2467; CHECK-NEXT: mtlr r02468; CHECK-NEXT: blr2469 %a = call <2 x i64> @llvm.llrint.v2i64.v2f32(<2 x float> %x)2470 ret <2 x i64> %a2471}2472declare <2 x i64> @llvm.llrint.v2i64.v2f32(<2 x float>)2473 2474define <4 x i64> @llrint_v4i64_v4f32(<4 x float> %x) nounwind {2475; BE-LABEL: llrint_v4i64_v4f32:2476; BE: # %bb.0:2477; BE-NEXT: mflr r02478; BE-NEXT: stdu r1, -160(r1)2479; BE-NEXT: addi r3, r1, 1122480; BE-NEXT: std r0, 176(r1)2481; BE-NEXT: stxvw4x v2, 0, r32482; BE-NEXT: lfs f1, 116(r1)2483; BE-NEXT: bl llrintf2484; BE-NEXT: nop2485; BE-NEXT: lfs f1, 112(r1)2486; BE-NEXT: std r3, 136(r1)2487; BE-NEXT: bl llrintf2488; BE-NEXT: nop2489; BE-NEXT: lfs f1, 124(r1)2490; BE-NEXT: std r3, 128(r1)2491; BE-NEXT: bl llrintf2492; BE-NEXT: nop2493; BE-NEXT: lfs f1, 120(r1)2494; BE-NEXT: std r3, 152(r1)2495; BE-NEXT: bl llrintf2496; BE-NEXT: nop2497; BE-NEXT: std r3, 144(r1)2498; BE-NEXT: addi r3, r1, 1282499; BE-NEXT: lxvd2x v2, 0, r32500; BE-NEXT: addi r3, r1, 1442501; BE-NEXT: lxvd2x v3, 0, r32502; BE-NEXT: addi r1, r1, 1602503; BE-NEXT: ld r0, 16(r1)2504; BE-NEXT: mtlr r02505; BE-NEXT: blr2506;2507; CHECK-LABEL: llrint_v4i64_v4f32:2508; CHECK: # %bb.0:2509; CHECK-NEXT: mflr r02510; CHECK-NEXT: stdu r1, -80(r1)2511; CHECK-NEXT: xxsldwi vs0, v2, v2, 32512; CHECK-NEXT: li r3, 482513; CHECK-NEXT: std r0, 96(r1)2514; CHECK-NEXT: xscvspdpn f1, vs02515; CHECK-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill2516; CHECK-NEXT: li r3, 642517; CHECK-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill2518; CHECK-NEXT: vmr v31, v22519; CHECK-NEXT: bl llrintf2520; CHECK-NEXT: nop2521; CHECK-NEXT: xxswapd vs0, v312522; CHECK-NEXT: mtvsrd v30, r32523; CHECK-NEXT: xscvspdpn f1, vs02524; CHECK-NEXT: bl llrintf2525; CHECK-NEXT: nop2526; CHECK-NEXT: xscvspdpn f1, v312527; CHECK-NEXT: mtfprd f0, r32528; CHECK-NEXT: xxmrghd v30, vs0, v302529; CHECK-NEXT: bl llrintf2530; CHECK-NEXT: nop2531; CHECK-NEXT: xxsldwi vs0, v31, v31, 12532; CHECK-NEXT: mtvsrd v31, r32533; CHECK-NEXT: xscvspdpn f1, vs02534; CHECK-NEXT: bl llrintf2535; CHECK-NEXT: nop2536; CHECK-NEXT: mtfprd f0, r32537; CHECK-NEXT: li r3, 642538; CHECK-NEXT: vmr v2, v302539; CHECK-NEXT: xxmrghd v3, v31, vs02540; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload2541; CHECK-NEXT: li r3, 482542; CHECK-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload2543; CHECK-NEXT: addi r1, r1, 802544; CHECK-NEXT: ld r0, 16(r1)2545; CHECK-NEXT: mtlr r02546; CHECK-NEXT: blr2547 %a = call <4 x i64> @llvm.llrint.v4i64.v4f32(<4 x float> %x)2548 ret <4 x i64> %a2549}2550declare <4 x i64> @llvm.llrint.v4i64.v4f32(<4 x float>)2551 2552define <8 x i64> @llrint_v8i64_v8f32(<8 x float> %x) nounwind {2553; BE-LABEL: llrint_v8i64_v8f32:2554; BE: # %bb.0:2555; BE-NEXT: mflr r02556; BE-NEXT: stdu r1, -208(r1)2557; BE-NEXT: addi r3, r1, 1122558; BE-NEXT: std r0, 224(r1)2559; BE-NEXT: stxvw4x v2, 0, r32560; BE-NEXT: addi r3, r1, 1282561; BE-NEXT: stxvw4x v3, 0, r32562; BE-NEXT: lfs f1, 116(r1)2563; BE-NEXT: bl llrintf2564; BE-NEXT: nop2565; BE-NEXT: lfs f1, 112(r1)2566; BE-NEXT: std r3, 152(r1)2567; BE-NEXT: bl llrintf2568; BE-NEXT: nop2569; BE-NEXT: lfs f1, 124(r1)2570; BE-NEXT: std r3, 144(r1)2571; BE-NEXT: bl llrintf2572; BE-NEXT: nop2573; BE-NEXT: lfs f1, 120(r1)2574; BE-NEXT: std r3, 168(r1)2575; BE-NEXT: bl llrintf2576; BE-NEXT: nop2577; BE-NEXT: lfs f1, 132(r1)2578; BE-NEXT: std r3, 160(r1)2579; BE-NEXT: bl llrintf2580; BE-NEXT: nop2581; BE-NEXT: lfs f1, 128(r1)2582; BE-NEXT: std r3, 184(r1)2583; BE-NEXT: bl llrintf2584; BE-NEXT: nop2585; BE-NEXT: lfs f1, 140(r1)2586; BE-NEXT: std r3, 176(r1)2587; BE-NEXT: bl llrintf2588; BE-NEXT: nop2589; BE-NEXT: lfs f1, 136(r1)2590; BE-NEXT: std r3, 200(r1)2591; BE-NEXT: bl llrintf2592; BE-NEXT: nop2593; BE-NEXT: std r3, 192(r1)2594; BE-NEXT: addi r3, r1, 1442595; BE-NEXT: lxvd2x v2, 0, r32596; BE-NEXT: addi r3, r1, 1602597; BE-NEXT: lxvd2x v3, 0, r32598; BE-NEXT: addi r3, r1, 1762599; BE-NEXT: lxvd2x v4, 0, r32600; BE-NEXT: addi r3, r1, 1922601; BE-NEXT: lxvd2x v5, 0, r32602; BE-NEXT: addi r1, r1, 2082603; BE-NEXT: ld r0, 16(r1)2604; BE-NEXT: mtlr r02605; BE-NEXT: blr2606;2607; CHECK-LABEL: llrint_v8i64_v8f32:2608; CHECK: # %bb.0:2609; CHECK-NEXT: mflr r02610; CHECK-NEXT: stdu r1, -112(r1)2611; CHECK-NEXT: li r3, 482612; CHECK-NEXT: xxsldwi vs0, v2, v2, 32613; CHECK-NEXT: std r0, 128(r1)2614; CHECK-NEXT: stxvd2x v28, r1, r3 # 16-byte Folded Spill2615; CHECK-NEXT: li r3, 642616; CHECK-NEXT: xscvspdpn f1, vs02617; CHECK-NEXT: stxvd2x v29, r1, r3 # 16-byte Folded Spill2618; CHECK-NEXT: li r3, 802619; CHECK-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill2620; CHECK-NEXT: li r3, 962621; CHECK-NEXT: vmr v30, v22622; CHECK-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill2623; CHECK-NEXT: vmr v31, v32624; CHECK-NEXT: bl llrintf2625; CHECK-NEXT: nop2626; CHECK-NEXT: xxswapd vs0, v302627; CHECK-NEXT: mtvsrd v29, r32628; CHECK-NEXT: xscvspdpn f1, vs02629; CHECK-NEXT: bl llrintf2630; CHECK-NEXT: nop2631; CHECK-NEXT: xscvspdpn f1, v302632; CHECK-NEXT: mtfprd f0, r32633; CHECK-NEXT: xxmrghd v29, vs0, v292634; CHECK-NEXT: bl llrintf2635; CHECK-NEXT: nop2636; CHECK-NEXT: xxsldwi vs0, v30, v30, 12637; CHECK-NEXT: mtvsrd v30, r32638; CHECK-NEXT: xscvspdpn f1, vs02639; CHECK-NEXT: bl llrintf2640; CHECK-NEXT: nop2641; CHECK-NEXT: mtfprd f0, r32642; CHECK-NEXT: xxmrghd v30, v30, vs02643; CHECK-NEXT: xxsldwi vs0, v31, v31, 32644; CHECK-NEXT: xscvspdpn f1, vs02645; CHECK-NEXT: bl llrintf2646; CHECK-NEXT: nop2647; CHECK-NEXT: xxswapd vs0, v312648; CHECK-NEXT: mtvsrd v28, r32649; CHECK-NEXT: xscvspdpn f1, vs02650; CHECK-NEXT: bl llrintf2651; CHECK-NEXT: nop2652; CHECK-NEXT: xscvspdpn f1, v312653; CHECK-NEXT: mtfprd f0, r32654; CHECK-NEXT: xxmrghd v28, vs0, v282655; CHECK-NEXT: bl llrintf2656; CHECK-NEXT: nop2657; CHECK-NEXT: xxsldwi vs0, v31, v31, 12658; CHECK-NEXT: mtvsrd v31, r32659; CHECK-NEXT: xscvspdpn f1, vs02660; CHECK-NEXT: bl llrintf2661; CHECK-NEXT: nop2662; CHECK-NEXT: mtfprd f0, r32663; CHECK-NEXT: li r3, 962664; CHECK-NEXT: vmr v3, v302665; CHECK-NEXT: vmr v2, v292666; CHECK-NEXT: vmr v4, v282667; CHECK-NEXT: xxmrghd v5, v31, vs02668; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload2669; CHECK-NEXT: li r3, 802670; CHECK-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload2671; CHECK-NEXT: li r3, 642672; CHECK-NEXT: lxvd2x v29, r1, r3 # 16-byte Folded Reload2673; CHECK-NEXT: li r3, 482674; CHECK-NEXT: lxvd2x v28, r1, r3 # 16-byte Folded Reload2675; CHECK-NEXT: addi r1, r1, 1122676; CHECK-NEXT: ld r0, 16(r1)2677; CHECK-NEXT: mtlr r02678; CHECK-NEXT: blr2679 %a = call <8 x i64> @llvm.llrint.v8i64.v8f32(<8 x float> %x)2680 ret <8 x i64> %a2681}2682declare <8 x i64> @llvm.llrint.v8i64.v8f32(<8 x float>)2683 2684define <16 x i64> @llrint_v16i64_v16f32(<16 x float> %x) nounwind {2685; BE-LABEL: llrint_v16i64_v16f32:2686; BE: # %bb.0:2687; BE-NEXT: mflr r02688; BE-NEXT: stdu r1, -304(r1)2689; BE-NEXT: addi r3, r1, 1122690; BE-NEXT: std r0, 320(r1)2691; BE-NEXT: stxvw4x v2, 0, r32692; BE-NEXT: addi r3, r1, 1282693; BE-NEXT: stxvw4x v3, 0, r32694; BE-NEXT: addi r3, r1, 1442695; BE-NEXT: stxvw4x v4, 0, r32696; BE-NEXT: addi r3, r1, 1602697; BE-NEXT: stxvw4x v5, 0, r32698; BE-NEXT: lfs f1, 116(r1)2699; BE-NEXT: bl llrintf2700; BE-NEXT: nop2701; BE-NEXT: lfs f1, 112(r1)2702; BE-NEXT: std r3, 184(r1)2703; BE-NEXT: bl llrintf2704; BE-NEXT: nop2705; BE-NEXT: lfs f1, 124(r1)2706; BE-NEXT: std r3, 176(r1)2707; BE-NEXT: bl llrintf2708; BE-NEXT: nop2709; BE-NEXT: lfs f1, 120(r1)2710; BE-NEXT: std r3, 200(r1)2711; BE-NEXT: bl llrintf2712; BE-NEXT: nop2713; BE-NEXT: lfs f1, 132(r1)2714; BE-NEXT: std r3, 192(r1)2715; BE-NEXT: bl llrintf2716; BE-NEXT: nop2717; BE-NEXT: lfs f1, 128(r1)2718; BE-NEXT: std r3, 216(r1)2719; BE-NEXT: bl llrintf2720; BE-NEXT: nop2721; BE-NEXT: lfs f1, 140(r1)2722; BE-NEXT: std r3, 208(r1)2723; BE-NEXT: bl llrintf2724; BE-NEXT: nop2725; BE-NEXT: lfs f1, 136(r1)2726; BE-NEXT: std r3, 232(r1)2727; BE-NEXT: bl llrintf2728; BE-NEXT: nop2729; BE-NEXT: lfs f1, 148(r1)2730; BE-NEXT: std r3, 224(r1)2731; BE-NEXT: bl llrintf2732; BE-NEXT: nop2733; BE-NEXT: lfs f1, 144(r1)2734; BE-NEXT: std r3, 248(r1)2735; BE-NEXT: bl llrintf2736; BE-NEXT: nop2737; BE-NEXT: lfs f1, 156(r1)2738; BE-NEXT: std r3, 240(r1)2739; BE-NEXT: bl llrintf2740; BE-NEXT: nop2741; BE-NEXT: lfs f1, 152(r1)2742; BE-NEXT: std r3, 264(r1)2743; BE-NEXT: bl llrintf2744; BE-NEXT: nop2745; BE-NEXT: lfs f1, 164(r1)2746; BE-NEXT: std r3, 256(r1)2747; BE-NEXT: bl llrintf2748; BE-NEXT: nop2749; BE-NEXT: lfs f1, 160(r1)2750; BE-NEXT: std r3, 280(r1)2751; BE-NEXT: bl llrintf2752; BE-NEXT: nop2753; BE-NEXT: lfs f1, 172(r1)2754; BE-NEXT: std r3, 272(r1)2755; BE-NEXT: bl llrintf2756; BE-NEXT: nop2757; BE-NEXT: lfs f1, 168(r1)2758; BE-NEXT: std r3, 296(r1)2759; BE-NEXT: bl llrintf2760; BE-NEXT: nop2761; BE-NEXT: std r3, 288(r1)2762; BE-NEXT: addi r3, r1, 1762763; BE-NEXT: lxvd2x v2, 0, r32764; BE-NEXT: addi r3, r1, 1922765; BE-NEXT: lxvd2x v3, 0, r32766; BE-NEXT: addi r3, r1, 2082767; BE-NEXT: lxvd2x v4, 0, r32768; BE-NEXT: addi r3, r1, 2242769; BE-NEXT: lxvd2x v5, 0, r32770; BE-NEXT: addi r3, r1, 2402771; BE-NEXT: lxvd2x v6, 0, r32772; BE-NEXT: addi r3, r1, 2562773; BE-NEXT: lxvd2x v7, 0, r32774; BE-NEXT: addi r3, r1, 2722775; BE-NEXT: lxvd2x v8, 0, r32776; BE-NEXT: addi r3, r1, 2882777; BE-NEXT: lxvd2x v9, 0, r32778; BE-NEXT: addi r1, r1, 3042779; BE-NEXT: ld r0, 16(r1)2780; BE-NEXT: mtlr r02781; BE-NEXT: blr2782;2783; CHECK-LABEL: llrint_v16i64_v16f32:2784; CHECK: # %bb.0:2785; CHECK-NEXT: mflr r02786; CHECK-NEXT: stdu r1, -176(r1)2787; CHECK-NEXT: li r3, 482788; CHECK-NEXT: std r0, 192(r1)2789; CHECK-NEXT: xxsldwi vs0, v2, v2, 32790; CHECK-NEXT: stxvd2x v24, r1, r3 # 16-byte Folded Spill2791; CHECK-NEXT: li r3, 642792; CHECK-NEXT: xscvspdpn f1, vs02793; CHECK-NEXT: stxvd2x v25, r1, r3 # 16-byte Folded Spill2794; CHECK-NEXT: li r3, 802795; CHECK-NEXT: stxvd2x v26, r1, r3 # 16-byte Folded Spill2796; CHECK-NEXT: li r3, 962797; CHECK-NEXT: vmr v26, v32798; CHECK-NEXT: stxvd2x v27, r1, r3 # 16-byte Folded Spill2799; CHECK-NEXT: li r3, 1122800; CHECK-NEXT: stxvd2x v28, r1, r3 # 16-byte Folded Spill2801; CHECK-NEXT: li r3, 1282802; CHECK-NEXT: vmr v28, v42803; CHECK-NEXT: stxvd2x v29, r1, r3 # 16-byte Folded Spill2804; CHECK-NEXT: li r3, 1442805; CHECK-NEXT: vmr v29, v22806; CHECK-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill2807; CHECK-NEXT: li r3, 1602808; CHECK-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill2809; CHECK-NEXT: vmr v31, v52810; CHECK-NEXT: bl llrintf2811; CHECK-NEXT: nop2812; CHECK-NEXT: xxswapd vs0, v292813; CHECK-NEXT: mtvsrd v30, r32814; CHECK-NEXT: xscvspdpn f1, vs02815; CHECK-NEXT: bl llrintf2816; CHECK-NEXT: nop2817; CHECK-NEXT: xscvspdpn f1, v292818; CHECK-NEXT: mtfprd f0, r32819; CHECK-NEXT: xxmrghd v30, vs0, v302820; CHECK-NEXT: bl llrintf2821; CHECK-NEXT: nop2822; CHECK-NEXT: xxsldwi vs0, v29, v29, 12823; CHECK-NEXT: mtvsrd v29, r32824; CHECK-NEXT: xscvspdpn f1, vs02825; CHECK-NEXT: bl llrintf2826; CHECK-NEXT: nop2827; CHECK-NEXT: mtfprd f0, r32828; CHECK-NEXT: xxmrghd v29, v29, vs02829; CHECK-NEXT: xxsldwi vs0, v26, v26, 32830; CHECK-NEXT: xscvspdpn f1, vs02831; CHECK-NEXT: bl llrintf2832; CHECK-NEXT: nop2833; CHECK-NEXT: xxswapd vs0, v262834; CHECK-NEXT: mtvsrd v27, r32835; CHECK-NEXT: xscvspdpn f1, vs02836; CHECK-NEXT: bl llrintf2837; CHECK-NEXT: nop2838; CHECK-NEXT: xscvspdpn f1, v262839; CHECK-NEXT: mtfprd f0, r32840; CHECK-NEXT: xxmrghd v27, vs0, v272841; CHECK-NEXT: bl llrintf2842; CHECK-NEXT: nop2843; CHECK-NEXT: xxsldwi vs0, v26, v26, 12844; CHECK-NEXT: mtvsrd v26, r32845; CHECK-NEXT: xscvspdpn f1, vs02846; CHECK-NEXT: bl llrintf2847; CHECK-NEXT: nop2848; CHECK-NEXT: mtfprd f0, r32849; CHECK-NEXT: xxmrghd v26, v26, vs02850; CHECK-NEXT: xxsldwi vs0, v28, v28, 32851; CHECK-NEXT: xscvspdpn f1, vs02852; CHECK-NEXT: bl llrintf2853; CHECK-NEXT: nop2854; CHECK-NEXT: xxswapd vs0, v282855; CHECK-NEXT: mtvsrd v25, r32856; CHECK-NEXT: xscvspdpn f1, vs02857; CHECK-NEXT: bl llrintf2858; CHECK-NEXT: nop2859; CHECK-NEXT: xscvspdpn f1, v282860; CHECK-NEXT: mtfprd f0, r32861; CHECK-NEXT: xxmrghd v25, vs0, v252862; CHECK-NEXT: bl llrintf2863; CHECK-NEXT: nop2864; CHECK-NEXT: xxsldwi vs0, v28, v28, 12865; CHECK-NEXT: mtvsrd v28, r32866; CHECK-NEXT: xscvspdpn f1, vs02867; CHECK-NEXT: bl llrintf2868; CHECK-NEXT: nop2869; CHECK-NEXT: mtfprd f0, r32870; CHECK-NEXT: xxmrghd v28, v28, vs02871; CHECK-NEXT: xxsldwi vs0, v31, v31, 32872; CHECK-NEXT: xscvspdpn f1, vs02873; CHECK-NEXT: bl llrintf2874; CHECK-NEXT: nop2875; CHECK-NEXT: xxswapd vs0, v312876; CHECK-NEXT: mtvsrd v24, r32877; CHECK-NEXT: xscvspdpn f1, vs02878; CHECK-NEXT: bl llrintf2879; CHECK-NEXT: nop2880; CHECK-NEXT: xscvspdpn f1, v312881; CHECK-NEXT: mtfprd f0, r32882; CHECK-NEXT: xxmrghd v24, vs0, v242883; CHECK-NEXT: bl llrintf2884; CHECK-NEXT: nop2885; CHECK-NEXT: xxsldwi vs0, v31, v31, 12886; CHECK-NEXT: mtvsrd v31, r32887; CHECK-NEXT: xscvspdpn f1, vs02888; CHECK-NEXT: bl llrintf2889; CHECK-NEXT: nop2890; CHECK-NEXT: mtfprd f0, r32891; CHECK-NEXT: li r3, 1602892; CHECK-NEXT: vmr v2, v302893; CHECK-NEXT: vmr v3, v292894; CHECK-NEXT: vmr v7, v282895; CHECK-NEXT: vmr v4, v272896; CHECK-NEXT: vmr v5, v262897; CHECK-NEXT: vmr v6, v252898; CHECK-NEXT: vmr v8, v242899; CHECK-NEXT: xxmrghd v9, v31, vs02900; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload2901; CHECK-NEXT: li r3, 1442902; CHECK-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload2903; CHECK-NEXT: li r3, 1282904; CHECK-NEXT: lxvd2x v29, r1, r3 # 16-byte Folded Reload2905; CHECK-NEXT: li r3, 1122906; CHECK-NEXT: lxvd2x v28, r1, r3 # 16-byte Folded Reload2907; CHECK-NEXT: li r3, 962908; CHECK-NEXT: lxvd2x v27, r1, r3 # 16-byte Folded Reload2909; CHECK-NEXT: li r3, 802910; CHECK-NEXT: lxvd2x v26, r1, r3 # 16-byte Folded Reload2911; CHECK-NEXT: li r3, 642912; CHECK-NEXT: lxvd2x v25, r1, r3 # 16-byte Folded Reload2913; CHECK-NEXT: li r3, 482914; CHECK-NEXT: lxvd2x v24, r1, r3 # 16-byte Folded Reload2915; CHECK-NEXT: addi r1, r1, 1762916; CHECK-NEXT: ld r0, 16(r1)2917; CHECK-NEXT: mtlr r02918; CHECK-NEXT: blr2919 %a = call <16 x i64> @llvm.llrint.v16i64.v16f32(<16 x float> %x)2920 ret <16 x i64> %a2921}2922declare <16 x i64> @llvm.llrint.v16i64.v16f32(<16 x float>)2923 2924define <1 x i64> @llrint_v1i64_v1f64(<1 x double> %x) nounwind {2925; BE-LABEL: llrint_v1i64_v1f64:2926; BE: # %bb.0:2927; BE-NEXT: mflr r02928; BE-NEXT: stdu r1, -112(r1)2929; BE-NEXT: std r0, 128(r1)2930; BE-NEXT: bl llrint2931; BE-NEXT: nop2932; BE-NEXT: addi r1, r1, 1122933; BE-NEXT: ld r0, 16(r1)2934; BE-NEXT: mtlr r02935; BE-NEXT: blr2936;2937; CHECK-LABEL: llrint_v1i64_v1f64:2938; CHECK: # %bb.0:2939; CHECK-NEXT: mflr r02940; CHECK-NEXT: stdu r1, -32(r1)2941; CHECK-NEXT: std r0, 48(r1)2942; CHECK-NEXT: bl llrint2943; CHECK-NEXT: nop2944; CHECK-NEXT: addi r1, r1, 322945; CHECK-NEXT: ld r0, 16(r1)2946; CHECK-NEXT: mtlr r02947; CHECK-NEXT: blr2948 %a = call <1 x i64> @llvm.llrint.v1i64.v1f64(<1 x double> %x)2949 ret <1 x i64> %a2950}2951declare <1 x i64> @llvm.llrint.v1i64.v1f64(<1 x double>)2952 2953define <2 x i64> @llrint_v2i64_v2f64(<2 x double> %x) nounwind {2954; BE-LABEL: llrint_v2i64_v2f64:2955; BE: # %bb.0:2956; BE-NEXT: mflr r02957; BE-NEXT: stdu r1, -160(r1)2958; BE-NEXT: li r3, 1442959; BE-NEXT: std r0, 176(r1)2960; BE-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill2961; BE-NEXT: vmr v31, v22962; BE-NEXT: xxlor f1, v31, v312963; BE-NEXT: bl llrint2964; BE-NEXT: nop2965; BE-NEXT: xxswapd vs1, v312966; BE-NEXT: std r3, 128(r1)2967; BE-NEXT: bl llrint2968; BE-NEXT: nop2969; BE-NEXT: std r3, 136(r1)2970; BE-NEXT: addi r3, r1, 1282971; BE-NEXT: lxvd2x v2, 0, r32972; BE-NEXT: li r3, 1442973; BE-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload2974; BE-NEXT: addi r1, r1, 1602975; BE-NEXT: ld r0, 16(r1)2976; BE-NEXT: mtlr r02977; BE-NEXT: blr2978;2979; CHECK-LABEL: llrint_v2i64_v2f64:2980; CHECK: # %bb.0:2981; CHECK-NEXT: mflr r02982; CHECK-NEXT: stdu r1, -64(r1)2983; CHECK-NEXT: li r3, 482984; CHECK-NEXT: std r0, 80(r1)2985; CHECK-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill2986; CHECK-NEXT: vmr v31, v22987; CHECK-NEXT: xxlor f1, v31, v312988; CHECK-NEXT: bl llrint2989; CHECK-NEXT: nop2990; CHECK-NEXT: xxswapd vs1, v312991; CHECK-NEXT: mtvsrd v31, r32992; CHECK-NEXT: bl llrint2993; CHECK-NEXT: nop2994; CHECK-NEXT: mtfprd f0, r32995; CHECK-NEXT: li r3, 482996; CHECK-NEXT: xxmrghd v2, v31, vs02997; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload2998; CHECK-NEXT: addi r1, r1, 642999; CHECK-NEXT: ld r0, 16(r1)3000; CHECK-NEXT: mtlr r03001; CHECK-NEXT: blr3002 %a = call <2 x i64> @llvm.llrint.v2i64.v2f64(<2 x double> %x)3003 ret <2 x i64> %a3004}3005declare <2 x i64> @llvm.llrint.v2i64.v2f64(<2 x double>)3006 3007define <4 x i64> @llrint_v4i64_v4f64(<4 x double> %x) nounwind {3008; BE-LABEL: llrint_v4i64_v4f64:3009; BE: # %bb.0:3010; BE-NEXT: mflr r03011; BE-NEXT: stdu r1, -192(r1)3012; BE-NEXT: li r3, 1603013; BE-NEXT: std r0, 208(r1)3014; BE-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill3015; BE-NEXT: vmr v30, v23016; BE-NEXT: li r3, 1763017; BE-NEXT: xxlor f1, v30, v303018; BE-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill3019; BE-NEXT: vmr v31, v33020; BE-NEXT: bl llrint3021; BE-NEXT: nop3022; BE-NEXT: xxswapd vs1, v303023; BE-NEXT: std r3, 128(r1)3024; BE-NEXT: bl llrint3025; BE-NEXT: nop3026; BE-NEXT: xxlor f1, v31, v313027; BE-NEXT: std r3, 136(r1)3028; BE-NEXT: bl llrint3029; BE-NEXT: nop3030; BE-NEXT: xxswapd vs1, v313031; BE-NEXT: std r3, 144(r1)3032; BE-NEXT: bl llrint3033; BE-NEXT: nop3034; BE-NEXT: std r3, 152(r1)3035; BE-NEXT: addi r3, r1, 1283036; BE-NEXT: lxvd2x v2, 0, r33037; BE-NEXT: addi r3, r1, 1443038; BE-NEXT: lxvd2x v3, 0, r33039; BE-NEXT: li r3, 1763040; BE-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload3041; BE-NEXT: li r3, 1603042; BE-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload3043; BE-NEXT: addi r1, r1, 1923044; BE-NEXT: ld r0, 16(r1)3045; BE-NEXT: mtlr r03046; BE-NEXT: blr3047;3048; CHECK-LABEL: llrint_v4i64_v4f64:3049; CHECK: # %bb.0:3050; CHECK-NEXT: mflr r03051; CHECK-NEXT: stdu r1, -80(r1)3052; CHECK-NEXT: li r3, 483053; CHECK-NEXT: std r0, 96(r1)3054; CHECK-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill3055; CHECK-NEXT: vmr v30, v23056; CHECK-NEXT: li r3, 643057; CHECK-NEXT: xxlor f1, v30, v303058; CHECK-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill3059; CHECK-NEXT: vmr v31, v33060; CHECK-NEXT: bl llrint3061; CHECK-NEXT: nop3062; CHECK-NEXT: xxswapd vs1, v303063; CHECK-NEXT: mtvsrd v30, r33064; CHECK-NEXT: bl llrint3065; CHECK-NEXT: nop3066; CHECK-NEXT: mtfprd f0, r33067; CHECK-NEXT: xxlor f1, v31, v313068; CHECK-NEXT: xxmrghd v30, v30, vs03069; CHECK-NEXT: bl llrint3070; CHECK-NEXT: nop3071; CHECK-NEXT: xxswapd vs1, v313072; CHECK-NEXT: mtvsrd v31, r33073; CHECK-NEXT: bl llrint3074; CHECK-NEXT: nop3075; CHECK-NEXT: mtfprd f0, r33076; CHECK-NEXT: li r3, 643077; CHECK-NEXT: vmr v2, v303078; CHECK-NEXT: xxmrghd v3, v31, vs03079; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload3080; CHECK-NEXT: li r3, 483081; CHECK-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload3082; CHECK-NEXT: addi r1, r1, 803083; CHECK-NEXT: ld r0, 16(r1)3084; CHECK-NEXT: mtlr r03085; CHECK-NEXT: blr3086 %a = call <4 x i64> @llvm.llrint.v4i64.v4f64(<4 x double> %x)3087 ret <4 x i64> %a3088}3089declare <4 x i64> @llvm.llrint.v4i64.v4f64(<4 x double>)3090 3091define <8 x i64> @llrint_v8i64_v8f64(<8 x double> %x) nounwind {3092; BE-LABEL: llrint_v8i64_v8f64:3093; BE: # %bb.0:3094; BE-NEXT: mflr r03095; BE-NEXT: stdu r1, -256(r1)3096; BE-NEXT: li r3, 1923097; BE-NEXT: std r0, 272(r1)3098; BE-NEXT: stxvd2x v28, r1, r3 # 16-byte Folded Spill3099; BE-NEXT: li r3, 2083100; BE-NEXT: vmr v28, v23101; BE-NEXT: stxvd2x v29, r1, r3 # 16-byte Folded Spill3102; BE-NEXT: li r3, 2243103; BE-NEXT: xxlor f1, v28, v283104; BE-NEXT: vmr v29, v33105; BE-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill3106; BE-NEXT: li r3, 2403107; BE-NEXT: vmr v30, v43108; BE-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill3109; BE-NEXT: vmr v31, v53110; BE-NEXT: bl llrint3111; BE-NEXT: nop3112; BE-NEXT: xxswapd vs1, v283113; BE-NEXT: std r3, 128(r1)3114; BE-NEXT: bl llrint3115; BE-NEXT: nop3116; BE-NEXT: xxlor f1, v29, v293117; BE-NEXT: std r3, 136(r1)3118; BE-NEXT: bl llrint3119; BE-NEXT: nop3120; BE-NEXT: xxswapd vs1, v293121; BE-NEXT: std r3, 144(r1)3122; BE-NEXT: bl llrint3123; BE-NEXT: nop3124; BE-NEXT: xxlor f1, v30, v303125; BE-NEXT: std r3, 152(r1)3126; BE-NEXT: bl llrint3127; BE-NEXT: nop3128; BE-NEXT: xxswapd vs1, v303129; BE-NEXT: std r3, 160(r1)3130; BE-NEXT: bl llrint3131; BE-NEXT: nop3132; BE-NEXT: xxlor f1, v31, v313133; BE-NEXT: std r3, 168(r1)3134; BE-NEXT: bl llrint3135; BE-NEXT: nop3136; BE-NEXT: xxswapd vs1, v313137; BE-NEXT: std r3, 176(r1)3138; BE-NEXT: bl llrint3139; BE-NEXT: nop3140; BE-NEXT: std r3, 184(r1)3141; BE-NEXT: addi r3, r1, 1283142; BE-NEXT: lxvd2x v2, 0, r33143; BE-NEXT: addi r3, r1, 1443144; BE-NEXT: lxvd2x v3, 0, r33145; BE-NEXT: addi r3, r1, 1603146; BE-NEXT: lxvd2x v4, 0, r33147; BE-NEXT: addi r3, r1, 1763148; BE-NEXT: lxvd2x v5, 0, r33149; BE-NEXT: li r3, 2403150; BE-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload3151; BE-NEXT: li r3, 2243152; BE-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload3153; BE-NEXT: li r3, 2083154; BE-NEXT: lxvd2x v29, r1, r3 # 16-byte Folded Reload3155; BE-NEXT: li r3, 1923156; BE-NEXT: lxvd2x v28, r1, r3 # 16-byte Folded Reload3157; BE-NEXT: addi r1, r1, 2563158; BE-NEXT: ld r0, 16(r1)3159; BE-NEXT: mtlr r03160; BE-NEXT: blr3161;3162; CHECK-LABEL: llrint_v8i64_v8f64:3163; CHECK: # %bb.0:3164; CHECK-NEXT: mflr r03165; CHECK-NEXT: stdu r1, -112(r1)3166; CHECK-NEXT: li r3, 483167; CHECK-NEXT: std r0, 128(r1)3168; CHECK-NEXT: stxvd2x v28, r1, r3 # 16-byte Folded Spill3169; CHECK-NEXT: li r3, 643170; CHECK-NEXT: vmr v28, v23171; CHECK-NEXT: stxvd2x v29, r1, r3 # 16-byte Folded Spill3172; CHECK-NEXT: li r3, 803173; CHECK-NEXT: xxlor f1, v28, v283174; CHECK-NEXT: vmr v29, v33175; CHECK-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill3176; CHECK-NEXT: li r3, 963177; CHECK-NEXT: vmr v30, v43178; CHECK-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill3179; CHECK-NEXT: vmr v31, v53180; CHECK-NEXT: bl llrint3181; CHECK-NEXT: nop3182; CHECK-NEXT: xxswapd vs1, v283183; CHECK-NEXT: mtvsrd v28, r33184; CHECK-NEXT: bl llrint3185; CHECK-NEXT: nop3186; CHECK-NEXT: mtfprd f0, r33187; CHECK-NEXT: xxlor f1, v29, v293188; CHECK-NEXT: xxmrghd v28, v28, vs03189; CHECK-NEXT: bl llrint3190; CHECK-NEXT: nop3191; CHECK-NEXT: xxswapd vs1, v293192; CHECK-NEXT: mtvsrd v29, r33193; CHECK-NEXT: bl llrint3194; CHECK-NEXT: nop3195; CHECK-NEXT: mtfprd f0, r33196; CHECK-NEXT: xxlor f1, v30, v303197; CHECK-NEXT: xxmrghd v29, v29, vs03198; CHECK-NEXT: bl llrint3199; CHECK-NEXT: nop3200; CHECK-NEXT: xxswapd vs1, v303201; CHECK-NEXT: mtvsrd v30, r33202; CHECK-NEXT: bl llrint3203; CHECK-NEXT: nop3204; CHECK-NEXT: mtfprd f0, r33205; CHECK-NEXT: xxlor f1, v31, v313206; CHECK-NEXT: xxmrghd v30, v30, vs03207; CHECK-NEXT: bl llrint3208; CHECK-NEXT: nop3209; CHECK-NEXT: xxswapd vs1, v313210; CHECK-NEXT: mtvsrd v31, r33211; CHECK-NEXT: bl llrint3212; CHECK-NEXT: nop3213; CHECK-NEXT: mtfprd f0, r33214; CHECK-NEXT: li r3, 963215; CHECK-NEXT: vmr v4, v303216; CHECK-NEXT: vmr v3, v293217; CHECK-NEXT: vmr v2, v283218; CHECK-NEXT: xxmrghd v5, v31, vs03219; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload3220; CHECK-NEXT: li r3, 803221; CHECK-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload3222; CHECK-NEXT: li r3, 643223; CHECK-NEXT: lxvd2x v29, r1, r3 # 16-byte Folded Reload3224; CHECK-NEXT: li r3, 483225; CHECK-NEXT: lxvd2x v28, r1, r3 # 16-byte Folded Reload3226; CHECK-NEXT: addi r1, r1, 1123227; CHECK-NEXT: ld r0, 16(r1)3228; CHECK-NEXT: mtlr r03229; CHECK-NEXT: blr3230 %a = call <8 x i64> @llvm.llrint.v8i64.v8f64(<8 x double> %x)3231 ret <8 x i64> %a3232}3233declare <8 x i64> @llvm.llrint.v8i64.v8f64(<8 x double>)3234 3235define <1 x i64> @llrint_v1i64_v1f128(<1 x fp128> %x) nounwind {3236; BE-LABEL: llrint_v1i64_v1f128:3237; BE: # %bb.0:3238; BE-NEXT: mflr r03239; BE-NEXT: stdu r1, -112(r1)3240; BE-NEXT: std r0, 128(r1)3241; BE-NEXT: bl llrintf1283242; BE-NEXT: nop3243; BE-NEXT: addi r1, r1, 1123244; BE-NEXT: ld r0, 16(r1)3245; BE-NEXT: mtlr r03246; BE-NEXT: blr3247;3248; CHECK-LABEL: llrint_v1i64_v1f128:3249; CHECK: # %bb.0:3250; CHECK-NEXT: mflr r03251; CHECK-NEXT: stdu r1, -32(r1)3252; CHECK-NEXT: std r0, 48(r1)3253; CHECK-NEXT: bl llrintf1283254; CHECK-NEXT: nop3255; CHECK-NEXT: addi r1, r1, 323256; CHECK-NEXT: ld r0, 16(r1)3257; CHECK-NEXT: mtlr r03258; CHECK-NEXT: blr3259 %a = call <1 x i64> @llvm.llrint.v1i64.v1f128(<1 x fp128> %x)3260 ret <1 x i64> %a3261}3262declare <1 x i64> @llvm.llrint.v1i64.v1f128(<1 x fp128>)3263 3264define <2 x i64> @llrint_v2i64_v2f128(<2 x fp128> %x) nounwind {3265; BE-LABEL: llrint_v2i64_v2f128:3266; BE: # %bb.0:3267; BE-NEXT: mflr r03268; BE-NEXT: stdu r1, -160(r1)3269; BE-NEXT: li r3, 1443270; BE-NEXT: std r0, 176(r1)3271; BE-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill3272; BE-NEXT: vmr v31, v23273; BE-NEXT: vmr v2, v33274; BE-NEXT: bl llrintf1283275; BE-NEXT: nop3276; BE-NEXT: vmr v2, v313277; BE-NEXT: std r3, 136(r1)3278; BE-NEXT: bl llrintf1283279; BE-NEXT: nop3280; BE-NEXT: std r3, 128(r1)3281; BE-NEXT: addi r3, r1, 1283282; BE-NEXT: lxvd2x v2, 0, r33283; BE-NEXT: li r3, 1443284; BE-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload3285; BE-NEXT: addi r1, r1, 1603286; BE-NEXT: ld r0, 16(r1)3287; BE-NEXT: mtlr r03288; BE-NEXT: blr3289;3290; CHECK-LABEL: llrint_v2i64_v2f128:3291; CHECK: # %bb.0:3292; CHECK-NEXT: mflr r03293; CHECK-NEXT: stdu r1, -80(r1)3294; CHECK-NEXT: li r3, 483295; CHECK-NEXT: std r0, 96(r1)3296; CHECK-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill3297; CHECK-NEXT: li r3, 643298; CHECK-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill3299; CHECK-NEXT: vmr v31, v33300; CHECK-NEXT: bl llrintf1283301; CHECK-NEXT: nop3302; CHECK-NEXT: vmr v2, v313303; CHECK-NEXT: mtvsrd v30, r33304; CHECK-NEXT: bl llrintf1283305; CHECK-NEXT: nop3306; CHECK-NEXT: mtfprd f0, r33307; CHECK-NEXT: li r3, 643308; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload3309; CHECK-NEXT: li r3, 483310; CHECK-NEXT: xxmrghd v2, vs0, v303311; CHECK-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload3312; CHECK-NEXT: addi r1, r1, 803313; CHECK-NEXT: ld r0, 16(r1)3314; CHECK-NEXT: mtlr r03315; CHECK-NEXT: blr3316 %a = call <2 x i64> @llvm.llrint.v2i64.v2f128(<2 x fp128> %x)3317 ret <2 x i64> %a3318}3319declare <2 x i64> @llvm.llrint.v2i64.v2f128(<2 x fp128>)3320 3321define <4 x i64> @llrint_v4i64_v4f128(<4 x fp128> %x) nounwind {3322; BE-LABEL: llrint_v4i64_v4f128:3323; BE: # %bb.0:3324; BE-NEXT: mflr r03325; BE-NEXT: stdu r1, -208(r1)3326; BE-NEXT: li r3, 1603327; BE-NEXT: std r0, 224(r1)3328; BE-NEXT: stxvd2x v29, r1, r3 # 16-byte Folded Spill3329; BE-NEXT: li r3, 1763330; BE-NEXT: vmr v29, v23331; BE-NEXT: vmr v2, v33332; BE-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill3333; BE-NEXT: li r3, 1923334; BE-NEXT: vmr v30, v43335; BE-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill3336; BE-NEXT: vmr v31, v53337; BE-NEXT: bl llrintf1283338; BE-NEXT: nop3339; BE-NEXT: vmr v2, v293340; BE-NEXT: std r3, 136(r1)3341; BE-NEXT: bl llrintf1283342; BE-NEXT: nop3343; BE-NEXT: vmr v2, v313344; BE-NEXT: std r3, 128(r1)3345; BE-NEXT: bl llrintf1283346; BE-NEXT: nop3347; BE-NEXT: vmr v2, v303348; BE-NEXT: std r3, 152(r1)3349; BE-NEXT: bl llrintf1283350; BE-NEXT: nop3351; BE-NEXT: std r3, 144(r1)3352; BE-NEXT: addi r3, r1, 1283353; BE-NEXT: lxvd2x v2, 0, r33354; BE-NEXT: addi r3, r1, 1443355; BE-NEXT: lxvd2x v3, 0, r33356; BE-NEXT: li r3, 1923357; BE-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload3358; BE-NEXT: li r3, 1763359; BE-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload3360; BE-NEXT: li r3, 1603361; BE-NEXT: lxvd2x v29, r1, r3 # 16-byte Folded Reload3362; BE-NEXT: addi r1, r1, 2083363; BE-NEXT: ld r0, 16(r1)3364; BE-NEXT: mtlr r03365; BE-NEXT: blr3366;3367; CHECK-LABEL: llrint_v4i64_v4f128:3368; CHECK: # %bb.0:3369; CHECK-NEXT: mflr r03370; CHECK-NEXT: stdu r1, -112(r1)3371; CHECK-NEXT: li r3, 483372; CHECK-NEXT: std r0, 128(r1)3373; CHECK-NEXT: stxvd2x v28, r1, r3 # 16-byte Folded Spill3374; CHECK-NEXT: li r3, 643375; CHECK-NEXT: stxvd2x v29, r1, r3 # 16-byte Folded Spill3376; CHECK-NEXT: li r3, 803377; CHECK-NEXT: vmr v29, v33378; CHECK-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill3379; CHECK-NEXT: li r3, 963380; CHECK-NEXT: vmr v30, v43381; CHECK-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill3382; CHECK-NEXT: vmr v31, v53383; CHECK-NEXT: bl llrintf1283384; CHECK-NEXT: nop3385; CHECK-NEXT: vmr v2, v293386; CHECK-NEXT: mtvsrd v28, r33387; CHECK-NEXT: bl llrintf1283388; CHECK-NEXT: nop3389; CHECK-NEXT: mtfprd f0, r33390; CHECK-NEXT: vmr v2, v303391; CHECK-NEXT: xxmrghd v29, vs0, v283392; CHECK-NEXT: bl llrintf1283393; CHECK-NEXT: nop3394; CHECK-NEXT: vmr v2, v313395; CHECK-NEXT: mtvsrd v30, r33396; CHECK-NEXT: bl llrintf1283397; CHECK-NEXT: nop3398; CHECK-NEXT: mtfprd f0, r33399; CHECK-NEXT: li r3, 963400; CHECK-NEXT: vmr v2, v293401; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload3402; CHECK-NEXT: li r3, 803403; CHECK-NEXT: xxmrghd v3, vs0, v303404; CHECK-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload3405; CHECK-NEXT: li r3, 643406; CHECK-NEXT: lxvd2x v29, r1, r3 # 16-byte Folded Reload3407; CHECK-NEXT: li r3, 483408; CHECK-NEXT: lxvd2x v28, r1, r3 # 16-byte Folded Reload3409; CHECK-NEXT: addi r1, r1, 1123410; CHECK-NEXT: ld r0, 16(r1)3411; CHECK-NEXT: mtlr r03412; CHECK-NEXT: blr3413 %a = call <4 x i64> @llvm.llrint.v4i64.v4f128(<4 x fp128> %x)3414 ret <4 x i64> %a3415}3416declare <4 x i64> @llvm.llrint.v4i64.v4f128(<4 x fp128>)3417 3418define <8 x i64> @llrint_v8i64_v8f128(<8 x fp128> %x) nounwind {3419; BE-LABEL: llrint_v8i64_v8f128:3420; BE: # %bb.0:3421; BE-NEXT: mflr r03422; BE-NEXT: stdu r1, -304(r1)3423; BE-NEXT: li r3, 1923424; BE-NEXT: std r0, 320(r1)3425; BE-NEXT: stxvd2x v25, r1, r3 # 16-byte Folded Spill3426; BE-NEXT: li r3, 2083427; BE-NEXT: vmr v25, v23428; BE-NEXT: vmr v2, v33429; BE-NEXT: stxvd2x v26, r1, r3 # 16-byte Folded Spill3430; BE-NEXT: li r3, 2243431; BE-NEXT: vmr v26, v43432; BE-NEXT: stxvd2x v27, r1, r3 # 16-byte Folded Spill3433; BE-NEXT: li r3, 2403434; BE-NEXT: vmr v27, v53435; BE-NEXT: stxvd2x v28, r1, r3 # 16-byte Folded Spill3436; BE-NEXT: li r3, 2563437; BE-NEXT: vmr v28, v63438; BE-NEXT: stxvd2x v29, r1, r3 # 16-byte Folded Spill3439; BE-NEXT: li r3, 2723440; BE-NEXT: vmr v29, v73441; BE-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill3442; BE-NEXT: li r3, 2883443; BE-NEXT: vmr v30, v83444; BE-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill3445; BE-NEXT: vmr v31, v93446; BE-NEXT: bl llrintf1283447; BE-NEXT: nop3448; BE-NEXT: vmr v2, v253449; BE-NEXT: std r3, 136(r1)3450; BE-NEXT: bl llrintf1283451; BE-NEXT: nop3452; BE-NEXT: vmr v2, v273453; BE-NEXT: std r3, 128(r1)3454; BE-NEXT: bl llrintf1283455; BE-NEXT: nop3456; BE-NEXT: vmr v2, v263457; BE-NEXT: std r3, 152(r1)3458; BE-NEXT: bl llrintf1283459; BE-NEXT: nop3460; BE-NEXT: vmr v2, v293461; BE-NEXT: std r3, 144(r1)3462; BE-NEXT: bl llrintf1283463; BE-NEXT: nop3464; BE-NEXT: vmr v2, v283465; BE-NEXT: std r3, 168(r1)3466; BE-NEXT: bl llrintf1283467; BE-NEXT: nop3468; BE-NEXT: vmr v2, v313469; BE-NEXT: std r3, 160(r1)3470; BE-NEXT: bl llrintf1283471; BE-NEXT: nop3472; BE-NEXT: vmr v2, v303473; BE-NEXT: std r3, 184(r1)3474; BE-NEXT: bl llrintf1283475; BE-NEXT: nop3476; BE-NEXT: std r3, 176(r1)3477; BE-NEXT: addi r3, r1, 1283478; BE-NEXT: lxvd2x v2, 0, r33479; BE-NEXT: addi r3, r1, 1443480; BE-NEXT: lxvd2x v3, 0, r33481; BE-NEXT: addi r3, r1, 1603482; BE-NEXT: lxvd2x v4, 0, r33483; BE-NEXT: addi r3, r1, 1763484; BE-NEXT: lxvd2x v5, 0, r33485; BE-NEXT: li r3, 2883486; BE-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload3487; BE-NEXT: li r3, 2723488; BE-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload3489; BE-NEXT: li r3, 2563490; BE-NEXT: lxvd2x v29, r1, r3 # 16-byte Folded Reload3491; BE-NEXT: li r3, 2403492; BE-NEXT: lxvd2x v28, r1, r3 # 16-byte Folded Reload3493; BE-NEXT: li r3, 2243494; BE-NEXT: lxvd2x v27, r1, r3 # 16-byte Folded Reload3495; BE-NEXT: li r3, 2083496; BE-NEXT: lxvd2x v26, r1, r3 # 16-byte Folded Reload3497; BE-NEXT: li r3, 1923498; BE-NEXT: lxvd2x v25, r1, r3 # 16-byte Folded Reload3499; BE-NEXT: addi r1, r1, 3043500; BE-NEXT: ld r0, 16(r1)3501; BE-NEXT: mtlr r03502; BE-NEXT: blr3503;3504; CHECK-LABEL: llrint_v8i64_v8f128:3505; CHECK: # %bb.0:3506; CHECK-NEXT: mflr r03507; CHECK-NEXT: stdu r1, -176(r1)3508; CHECK-NEXT: li r3, 483509; CHECK-NEXT: std r0, 192(r1)3510; CHECK-NEXT: stxvd2x v24, r1, r3 # 16-byte Folded Spill3511; CHECK-NEXT: li r3, 643512; CHECK-NEXT: stxvd2x v25, r1, r3 # 16-byte Folded Spill3513; CHECK-NEXT: li r3, 803514; CHECK-NEXT: vmr v25, v33515; CHECK-NEXT: stxvd2x v26, r1, r3 # 16-byte Folded Spill3516; CHECK-NEXT: li r3, 963517; CHECK-NEXT: vmr v26, v43518; CHECK-NEXT: stxvd2x v27, r1, r3 # 16-byte Folded Spill3519; CHECK-NEXT: li r3, 1123520; CHECK-NEXT: vmr v27, v53521; CHECK-NEXT: stxvd2x v28, r1, r3 # 16-byte Folded Spill3522; CHECK-NEXT: li r3, 1283523; CHECK-NEXT: vmr v28, v63524; CHECK-NEXT: stxvd2x v29, r1, r3 # 16-byte Folded Spill3525; CHECK-NEXT: li r3, 1443526; CHECK-NEXT: vmr v29, v73527; CHECK-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill3528; CHECK-NEXT: li r3, 1603529; CHECK-NEXT: vmr v30, v83530; CHECK-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill3531; CHECK-NEXT: vmr v31, v93532; CHECK-NEXT: bl llrintf1283533; CHECK-NEXT: nop3534; CHECK-NEXT: vmr v2, v253535; CHECK-NEXT: mtvsrd v24, r33536; CHECK-NEXT: bl llrintf1283537; CHECK-NEXT: nop3538; CHECK-NEXT: mtfprd f0, r33539; CHECK-NEXT: vmr v2, v263540; CHECK-NEXT: xxmrghd v25, vs0, v243541; CHECK-NEXT: bl llrintf1283542; CHECK-NEXT: nop3543; CHECK-NEXT: vmr v2, v273544; CHECK-NEXT: mtvsrd v26, r33545; CHECK-NEXT: bl llrintf1283546; CHECK-NEXT: nop3547; CHECK-NEXT: mtfprd f0, r33548; CHECK-NEXT: vmr v2, v283549; CHECK-NEXT: xxmrghd v27, vs0, v263550; CHECK-NEXT: bl llrintf1283551; CHECK-NEXT: nop3552; CHECK-NEXT: vmr v2, v293553; CHECK-NEXT: mtvsrd v28, r33554; CHECK-NEXT: bl llrintf1283555; CHECK-NEXT: nop3556; CHECK-NEXT: mtfprd f0, r33557; CHECK-NEXT: vmr v2, v303558; CHECK-NEXT: xxmrghd v29, vs0, v283559; CHECK-NEXT: bl llrintf1283560; CHECK-NEXT: nop3561; CHECK-NEXT: vmr v2, v313562; CHECK-NEXT: mtvsrd v30, r33563; CHECK-NEXT: bl llrintf1283564; CHECK-NEXT: nop3565; CHECK-NEXT: mtfprd f0, r33566; CHECK-NEXT: li r3, 1603567; CHECK-NEXT: vmr v4, v293568; CHECK-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload3569; CHECK-NEXT: li r3, 1443570; CHECK-NEXT: vmr v3, v273571; CHECK-NEXT: vmr v2, v253572; CHECK-NEXT: xxmrghd v5, vs0, v303573; CHECK-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload3574; CHECK-NEXT: li r3, 1283575; CHECK-NEXT: lxvd2x v29, r1, r3 # 16-byte Folded Reload3576; CHECK-NEXT: li r3, 1123577; CHECK-NEXT: lxvd2x v28, r1, r3 # 16-byte Folded Reload3578; CHECK-NEXT: li r3, 963579; CHECK-NEXT: lxvd2x v27, r1, r3 # 16-byte Folded Reload3580; CHECK-NEXT: li r3, 803581; CHECK-NEXT: lxvd2x v26, r1, r3 # 16-byte Folded Reload3582; CHECK-NEXT: li r3, 643583; CHECK-NEXT: lxvd2x v25, r1, r3 # 16-byte Folded Reload3584; CHECK-NEXT: li r3, 483585; CHECK-NEXT: lxvd2x v24, r1, r3 # 16-byte Folded Reload3586; CHECK-NEXT: addi r1, r1, 1763587; CHECK-NEXT: ld r0, 16(r1)3588; CHECK-NEXT: mtlr r03589; CHECK-NEXT: blr3590 %a = call <8 x i64> @llvm.llrint.v8i64.v8f128(<8 x fp128> %x)3591 ret <8 x i64> %a3592}3593declare <8 x i64> @llvm.llrint.v8i64.v8f128(<8 x fp128>)3594