brintos

brintos / llvm-project-archived public Read only

0
0
Text · 30.0 KiB · 988ec6d Raw
1032 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -verify-machineinstrs -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \3; RUN:   < %s -mtriple=powerpc64-unknown-linux -mcpu=pwr8 | FileCheck %s\4; RUN:   -check-prefix=P85; RUN: llc -verify-machineinstrs -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \6; RUN:   < %s -mtriple=powerpc64le-unknown-linux -mcpu=pwr9 | FileCheck %s \7; RUN:   -check-prefix=P98; RUN: llc -verify-machineinstrs -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \9; RUN:   < %s -mtriple=powerpc64le-unknown-linux -mcpu=pwr8 -mattr=-vsx \10; RUN:   | FileCheck %s -check-prefix=NOVSX11 12declare i1 @llvm.experimental.constrained.fptosi.i1.f128(fp128, metadata)13declare i32 @llvm.experimental.constrained.fptosi.i32.f128(fp128, metadata)14declare i64 @llvm.experimental.constrained.fptosi.i64.f128(fp128, metadata)15declare i64 @llvm.experimental.constrained.fptoui.i64.f128(fp128, metadata)16declare i32 @llvm.experimental.constrained.fptoui.i32.f128(fp128, metadata)17declare i1 @llvm.experimental.constrained.fptoui.i1.f128(fp128, metadata)18 19declare i1 @llvm.experimental.constrained.fptosi.i1.ppcf128(ppc_fp128, metadata)20declare i32 @llvm.experimental.constrained.fptosi.i32.ppcf128(ppc_fp128, metadata)21declare i64 @llvm.experimental.constrained.fptosi.i64.ppcf128(ppc_fp128, metadata)22declare i64 @llvm.experimental.constrained.fptoui.i64.ppcf128(ppc_fp128, metadata)23declare i32 @llvm.experimental.constrained.fptoui.i32.ppcf128(ppc_fp128, metadata)24declare i1 @llvm.experimental.constrained.fptoui.i1.ppcf128(ppc_fp128, metadata)25 26declare i128 @llvm.experimental.constrained.fptosi.i128.ppcf128(ppc_fp128, metadata)27declare i128 @llvm.experimental.constrained.fptoui.i128.ppcf128(ppc_fp128, metadata)28declare i128 @llvm.experimental.constrained.fptosi.i128.f128(fp128, metadata)29declare i128 @llvm.experimental.constrained.fptoui.i128.f128(fp128, metadata)30 31declare fp128 @llvm.experimental.constrained.sitofp.f128.i1(i1, metadata, metadata)32declare fp128 @llvm.experimental.constrained.sitofp.f128.i32(i32, metadata, metadata)33declare fp128 @llvm.experimental.constrained.sitofp.f128.i64(i64, metadata, metadata)34declare fp128 @llvm.experimental.constrained.uitofp.f128.i1(i1, metadata, metadata)35declare fp128 @llvm.experimental.constrained.uitofp.f128.i32(i32, metadata, metadata)36declare fp128 @llvm.experimental.constrained.uitofp.f128.i64(i64, metadata, metadata)37 38declare ppc_fp128 @llvm.experimental.constrained.sitofp.ppcf128.i1(i1, metadata, metadata)39declare ppc_fp128 @llvm.experimental.constrained.sitofp.ppcf128.i32(i32, metadata, metadata)40declare ppc_fp128 @llvm.experimental.constrained.sitofp.ppcf128.i64(i64, metadata, metadata)41declare ppc_fp128 @llvm.experimental.constrained.uitofp.ppcf128.i1(i1, metadata, metadata)42declare ppc_fp128 @llvm.experimental.constrained.uitofp.ppcf128.i32(i32, metadata, metadata)43declare ppc_fp128 @llvm.experimental.constrained.uitofp.ppcf128.i64(i64, metadata, metadata)44 45define i128 @q_to_i128(fp128 %m) #0 {46; P8-LABEL: q_to_i128:47; P8:       # %bb.0: # %entry48; P8-NEXT:    mflr r049; P8-NEXT:    stdu r1, -112(r1)50; P8-NEXT:    std r0, 128(r1)51; P8-NEXT:    .cfi_def_cfa_offset 11252; P8-NEXT:    .cfi_offset lr, 1653; P8-NEXT:    bl __fixkfti54; P8-NEXT:    nop55; P8-NEXT:    addi r1, r1, 11256; P8-NEXT:    ld r0, 16(r1)57; P8-NEXT:    mtlr r058; P8-NEXT:    blr59;60; P9-LABEL: q_to_i128:61; P9:       # %bb.0: # %entry62; P9-NEXT:    mflr r063; P9-NEXT:    stdu r1, -32(r1)64; P9-NEXT:    std r0, 48(r1)65; P9-NEXT:    .cfi_def_cfa_offset 3266; P9-NEXT:    .cfi_offset lr, 1667; P9-NEXT:    bl __fixkfti68; P9-NEXT:    nop69; P9-NEXT:    addi r1, r1, 3270; P9-NEXT:    ld r0, 16(r1)71; P9-NEXT:    mtlr r072; P9-NEXT:    blr73;74; NOVSX-LABEL: q_to_i128:75; NOVSX:       # %bb.0: # %entry76; NOVSX-NEXT:    mflr r077; NOVSX-NEXT:    stdu r1, -32(r1)78; NOVSX-NEXT:    std r0, 48(r1)79; NOVSX-NEXT:    .cfi_def_cfa_offset 3280; NOVSX-NEXT:    .cfi_offset lr, 1681; NOVSX-NEXT:    bl __fixkfti82; NOVSX-NEXT:    nop83; NOVSX-NEXT:    addi r1, r1, 3284; NOVSX-NEXT:    ld r0, 16(r1)85; NOVSX-NEXT:    mtlr r086; NOVSX-NEXT:    blr87entry:88  %conv = tail call i128 @llvm.experimental.constrained.fptosi.i128.f128(fp128 %m, metadata !"fpexcept.strict") #089  ret i128 %conv90}91 92define i128 @q_to_u128(fp128 %m) #0 {93; P8-LABEL: q_to_u128:94; P8:       # %bb.0: # %entry95; P8-NEXT:    mflr r096; P8-NEXT:    stdu r1, -112(r1)97; P8-NEXT:    std r0, 128(r1)98; P8-NEXT:    .cfi_def_cfa_offset 11299; P8-NEXT:    .cfi_offset lr, 16100; P8-NEXT:    bl __fixunskfti101; P8-NEXT:    nop102; P8-NEXT:    addi r1, r1, 112103; P8-NEXT:    ld r0, 16(r1)104; P8-NEXT:    mtlr r0105; P8-NEXT:    blr106;107; P9-LABEL: q_to_u128:108; P9:       # %bb.0: # %entry109; P9-NEXT:    mflr r0110; P9-NEXT:    stdu r1, -32(r1)111; P9-NEXT:    std r0, 48(r1)112; P9-NEXT:    .cfi_def_cfa_offset 32113; P9-NEXT:    .cfi_offset lr, 16114; P9-NEXT:    bl __fixunskfti115; P9-NEXT:    nop116; P9-NEXT:    addi r1, r1, 32117; P9-NEXT:    ld r0, 16(r1)118; P9-NEXT:    mtlr r0119; P9-NEXT:    blr120;121; NOVSX-LABEL: q_to_u128:122; NOVSX:       # %bb.0: # %entry123; NOVSX-NEXT:    mflr r0124; NOVSX-NEXT:    stdu r1, -32(r1)125; NOVSX-NEXT:    std r0, 48(r1)126; NOVSX-NEXT:    .cfi_def_cfa_offset 32127; NOVSX-NEXT:    .cfi_offset lr, 16128; NOVSX-NEXT:    bl __fixunskfti129; NOVSX-NEXT:    nop130; NOVSX-NEXT:    addi r1, r1, 32131; NOVSX-NEXT:    ld r0, 16(r1)132; NOVSX-NEXT:    mtlr r0133; NOVSX-NEXT:    blr134entry:135  %conv = tail call i128 @llvm.experimental.constrained.fptoui.i128.f128(fp128 %m, metadata !"fpexcept.strict") #0136  ret i128 %conv137}138 139define i1 @q_to_s1(fp128 %m) #0 {140; P8-LABEL: q_to_s1:141; P8:       # %bb.0: # %entry142; P8-NEXT:    mflr r0143; P8-NEXT:    stdu r1, -112(r1)144; P8-NEXT:    std r0, 128(r1)145; P8-NEXT:    .cfi_def_cfa_offset 112146; P8-NEXT:    .cfi_offset lr, 16147; P8-NEXT:    bl __fixkfsi148; P8-NEXT:    nop149; P8-NEXT:    addi r1, r1, 112150; P8-NEXT:    ld r0, 16(r1)151; P8-NEXT:    mtlr r0152; P8-NEXT:    blr153;154; P9-LABEL: q_to_s1:155; P9:       # %bb.0: # %entry156; P9-NEXT:    xscvqpswz v2, v2157; P9-NEXT:    mfvsrwz r3, v2158; P9-NEXT:    blr159;160; NOVSX-LABEL: q_to_s1:161; NOVSX:       # %bb.0: # %entry162; NOVSX-NEXT:    mflr r0163; NOVSX-NEXT:    stdu r1, -32(r1)164; NOVSX-NEXT:    std r0, 48(r1)165; NOVSX-NEXT:    .cfi_def_cfa_offset 32166; NOVSX-NEXT:    .cfi_offset lr, 16167; NOVSX-NEXT:    bl __fixkfsi168; NOVSX-NEXT:    nop169; NOVSX-NEXT:    addi r1, r1, 32170; NOVSX-NEXT:    ld r0, 16(r1)171; NOVSX-NEXT:    mtlr r0172; NOVSX-NEXT:    blr173entry:174  %conv = tail call i1 @llvm.experimental.constrained.fptosi.i1.f128(fp128 %m, metadata !"fpexcept.strict") #0175  ret i1 %conv176}177 178define i1 @q_to_u1(fp128 %m) #0 {179; P8-LABEL: q_to_u1:180; P8:       # %bb.0: # %entry181; P8-NEXT:    mflr r0182; P8-NEXT:    stdu r1, -112(r1)183; P8-NEXT:    std r0, 128(r1)184; P8-NEXT:    .cfi_def_cfa_offset 112185; P8-NEXT:    .cfi_offset lr, 16186; P8-NEXT:    bl __fixkfsi187; P8-NEXT:    nop188; P8-NEXT:    addi r1, r1, 112189; P8-NEXT:    ld r0, 16(r1)190; P8-NEXT:    mtlr r0191; P8-NEXT:    blr192;193; P9-LABEL: q_to_u1:194; P9:       # %bb.0: # %entry195; P9-NEXT:    xscvqpswz v2, v2196; P9-NEXT:    mfvsrwz r3, v2197; P9-NEXT:    blr198;199; NOVSX-LABEL: q_to_u1:200; NOVSX:       # %bb.0: # %entry201; NOVSX-NEXT:    mflr r0202; NOVSX-NEXT:    stdu r1, -32(r1)203; NOVSX-NEXT:    std r0, 48(r1)204; NOVSX-NEXT:    .cfi_def_cfa_offset 32205; NOVSX-NEXT:    .cfi_offset lr, 16206; NOVSX-NEXT:    bl __fixunskfsi207; NOVSX-NEXT:    nop208; NOVSX-NEXT:    addi r1, r1, 32209; NOVSX-NEXT:    ld r0, 16(r1)210; NOVSX-NEXT:    mtlr r0211; NOVSX-NEXT:    blr212entry:213  %conv = tail call i1 @llvm.experimental.constrained.fptoui.i1.f128(fp128 %m, metadata !"fpexcept.strict") #0214  ret i1 %conv215}216 217define i128 @ppcq_to_i128(ppc_fp128 %m) #0 {218; P8-LABEL: ppcq_to_i128:219; P8:       # %bb.0: # %entry220; P8-NEXT:    mflr r0221; P8-NEXT:    stdu r1, -112(r1)222; P8-NEXT:    std r0, 128(r1)223; P8-NEXT:    .cfi_def_cfa_offset 112224; P8-NEXT:    .cfi_offset lr, 16225; P8-NEXT:    bl __fixtfti226; P8-NEXT:    nop227; P8-NEXT:    addi r1, r1, 112228; P8-NEXT:    ld r0, 16(r1)229; P8-NEXT:    mtlr r0230; P8-NEXT:    blr231;232; P9-LABEL: ppcq_to_i128:233; P9:       # %bb.0: # %entry234; P9-NEXT:    mflr r0235; P9-NEXT:    stdu r1, -32(r1)236; P9-NEXT:    std r0, 48(r1)237; P9-NEXT:    .cfi_def_cfa_offset 32238; P9-NEXT:    .cfi_offset lr, 16239; P9-NEXT:    bl __fixtfti240; P9-NEXT:    nop241; P9-NEXT:    addi r1, r1, 32242; P9-NEXT:    ld r0, 16(r1)243; P9-NEXT:    mtlr r0244; P9-NEXT:    blr245;246; NOVSX-LABEL: ppcq_to_i128:247; NOVSX:       # %bb.0: # %entry248; NOVSX-NEXT:    mflr r0249; NOVSX-NEXT:    stdu r1, -32(r1)250; NOVSX-NEXT:    std r0, 48(r1)251; NOVSX-NEXT:    .cfi_def_cfa_offset 32252; NOVSX-NEXT:    .cfi_offset lr, 16253; NOVSX-NEXT:    bl __fixtfti254; NOVSX-NEXT:    nop255; NOVSX-NEXT:    addi r1, r1, 32256; NOVSX-NEXT:    ld r0, 16(r1)257; NOVSX-NEXT:    mtlr r0258; NOVSX-NEXT:    blr259entry:260  %conv = tail call i128 @llvm.experimental.constrained.fptosi.i128.ppcf128(ppc_fp128 %m, metadata !"fpexcept.strict") #0261  ret i128 %conv262}263 264define i128 @ppcq_to_u128(ppc_fp128 %m) #0 {265; P8-LABEL: ppcq_to_u128:266; P8:       # %bb.0: # %entry267; P8-NEXT:    mflr r0268; P8-NEXT:    stdu r1, -112(r1)269; P8-NEXT:    std r0, 128(r1)270; P8-NEXT:    .cfi_def_cfa_offset 112271; P8-NEXT:    .cfi_offset lr, 16272; P8-NEXT:    bl __fixtfti273; P8-NEXT:    nop274; P8-NEXT:    addi r1, r1, 112275; P8-NEXT:    ld r0, 16(r1)276; P8-NEXT:    mtlr r0277; P8-NEXT:    blr278;279; P9-LABEL: ppcq_to_u128:280; P9:       # %bb.0: # %entry281; P9-NEXT:    mflr r0282; P9-NEXT:    stdu r1, -32(r1)283; P9-NEXT:    std r0, 48(r1)284; P9-NEXT:    .cfi_def_cfa_offset 32285; P9-NEXT:    .cfi_offset lr, 16286; P9-NEXT:    bl __fixtfti287; P9-NEXT:    nop288; P9-NEXT:    addi r1, r1, 32289; P9-NEXT:    ld r0, 16(r1)290; P9-NEXT:    mtlr r0291; P9-NEXT:    blr292;293; NOVSX-LABEL: ppcq_to_u128:294; NOVSX:       # %bb.0: # %entry295; NOVSX-NEXT:    mflr r0296; NOVSX-NEXT:    stdu r1, -32(r1)297; NOVSX-NEXT:    std r0, 48(r1)298; NOVSX-NEXT:    .cfi_def_cfa_offset 32299; NOVSX-NEXT:    .cfi_offset lr, 16300; NOVSX-NEXT:    bl __fixtfti301; NOVSX-NEXT:    nop302; NOVSX-NEXT:    addi r1, r1, 32303; NOVSX-NEXT:    ld r0, 16(r1)304; NOVSX-NEXT:    mtlr r0305; NOVSX-NEXT:    blr306entry:307  %conv = tail call i128 @llvm.experimental.constrained.fptosi.i128.ppcf128(ppc_fp128 %m, metadata !"fpexcept.strict") #0308  ret i128 %conv309}310 311define signext i32 @q_to_i32(fp128 %m) #0 {312; P8-LABEL: q_to_i32:313; P8:       # %bb.0: # %entry314; P8-NEXT:    mflr r0315; P8-NEXT:    stdu r1, -112(r1)316; P8-NEXT:    std r0, 128(r1)317; P8-NEXT:    .cfi_def_cfa_offset 112318; P8-NEXT:    .cfi_offset lr, 16319; P8-NEXT:    bl __fixkfsi320; P8-NEXT:    nop321; P8-NEXT:    extsw r3, r3322; P8-NEXT:    addi r1, r1, 112323; P8-NEXT:    ld r0, 16(r1)324; P8-NEXT:    mtlr r0325; P8-NEXT:    blr326;327; P9-LABEL: q_to_i32:328; P9:       # %bb.0: # %entry329; P9-NEXT:    xscvqpswz v2, v2330; P9-NEXT:    mfvsrwz r3, v2331; P9-NEXT:    extsw r3, r3332; P9-NEXT:    blr333;334; NOVSX-LABEL: q_to_i32:335; NOVSX:       # %bb.0: # %entry336; NOVSX-NEXT:    mflr r0337; NOVSX-NEXT:    stdu r1, -32(r1)338; NOVSX-NEXT:    std r0, 48(r1)339; NOVSX-NEXT:    .cfi_def_cfa_offset 32340; NOVSX-NEXT:    .cfi_offset lr, 16341; NOVSX-NEXT:    bl __fixkfsi342; NOVSX-NEXT:    nop343; NOVSX-NEXT:    extsw r3, r3344; NOVSX-NEXT:    addi r1, r1, 32345; NOVSX-NEXT:    ld r0, 16(r1)346; NOVSX-NEXT:    mtlr r0347; NOVSX-NEXT:    blr348entry:349  %conv = tail call i32 @llvm.experimental.constrained.fptosi.i32.f128(fp128 %m, metadata !"fpexcept.strict") #0350  ret i32 %conv351}352 353define i64 @q_to_i64(fp128 %m) #0 {354; P8-LABEL: q_to_i64:355; P8:       # %bb.0: # %entry356; P8-NEXT:    mflr r0357; P8-NEXT:    stdu r1, -112(r1)358; P8-NEXT:    std r0, 128(r1)359; P8-NEXT:    .cfi_def_cfa_offset 112360; P8-NEXT:    .cfi_offset lr, 16361; P8-NEXT:    bl __fixkfdi362; P8-NEXT:    nop363; P8-NEXT:    addi r1, r1, 112364; P8-NEXT:    ld r0, 16(r1)365; P8-NEXT:    mtlr r0366; P8-NEXT:    blr367;368; P9-LABEL: q_to_i64:369; P9:       # %bb.0: # %entry370; P9-NEXT:    xscvqpsdz v2, v2371; P9-NEXT:    mfvsrd r3, v2372; P9-NEXT:    blr373;374; NOVSX-LABEL: q_to_i64:375; NOVSX:       # %bb.0: # %entry376; NOVSX-NEXT:    mflr r0377; NOVSX-NEXT:    stdu r1, -32(r1)378; NOVSX-NEXT:    std r0, 48(r1)379; NOVSX-NEXT:    .cfi_def_cfa_offset 32380; NOVSX-NEXT:    .cfi_offset lr, 16381; NOVSX-NEXT:    bl __fixkfdi382; NOVSX-NEXT:    nop383; NOVSX-NEXT:    addi r1, r1, 32384; NOVSX-NEXT:    ld r0, 16(r1)385; NOVSX-NEXT:    mtlr r0386; NOVSX-NEXT:    blr387entry:388  %conv = tail call i64 @llvm.experimental.constrained.fptosi.i64.f128(fp128 %m, metadata !"fpexcept.strict") #0389  ret i64 %conv390}391 392define i64 @q_to_u64(fp128 %m) #0 {393; P8-LABEL: q_to_u64:394; P8:       # %bb.0: # %entry395; P8-NEXT:    mflr r0396; P8-NEXT:    stdu r1, -112(r1)397; P8-NEXT:    std r0, 128(r1)398; P8-NEXT:    .cfi_def_cfa_offset 112399; P8-NEXT:    .cfi_offset lr, 16400; P8-NEXT:    bl __fixunskfdi401; P8-NEXT:    nop402; P8-NEXT:    addi r1, r1, 112403; P8-NEXT:    ld r0, 16(r1)404; P8-NEXT:    mtlr r0405; P8-NEXT:    blr406;407; P9-LABEL: q_to_u64:408; P9:       # %bb.0: # %entry409; P9-NEXT:    xscvqpudz v2, v2410; P9-NEXT:    mfvsrd r3, v2411; P9-NEXT:    blr412;413; NOVSX-LABEL: q_to_u64:414; NOVSX:       # %bb.0: # %entry415; NOVSX-NEXT:    mflr r0416; NOVSX-NEXT:    stdu r1, -32(r1)417; NOVSX-NEXT:    std r0, 48(r1)418; NOVSX-NEXT:    .cfi_def_cfa_offset 32419; NOVSX-NEXT:    .cfi_offset lr, 16420; NOVSX-NEXT:    bl __fixunskfdi421; NOVSX-NEXT:    nop422; NOVSX-NEXT:    addi r1, r1, 32423; NOVSX-NEXT:    ld r0, 16(r1)424; NOVSX-NEXT:    mtlr r0425; NOVSX-NEXT:    blr426entry:427  %conv = tail call i64 @llvm.experimental.constrained.fptoui.i64.f128(fp128 %m, metadata !"fpexcept.strict") #0428  ret i64 %conv429}430 431define zeroext i32 @q_to_u32(fp128 %m) #0 {432; P8-LABEL: q_to_u32:433; P8:       # %bb.0: # %entry434; P8-NEXT:    mflr r0435; P8-NEXT:    stdu r1, -112(r1)436; P8-NEXT:    std r0, 128(r1)437; P8-NEXT:    .cfi_def_cfa_offset 112438; P8-NEXT:    .cfi_offset lr, 16439; P8-NEXT:    bl __fixunskfsi440; P8-NEXT:    nop441; P8-NEXT:    addi r1, r1, 112442; P8-NEXT:    ld r0, 16(r1)443; P8-NEXT:    mtlr r0444; P8-NEXT:    blr445;446; P9-LABEL: q_to_u32:447; P9:       # %bb.0: # %entry448; P9-NEXT:    xscvqpuwz v2, v2449; P9-NEXT:    mfvsrwz r3, v2450; P9-NEXT:    blr451;452; NOVSX-LABEL: q_to_u32:453; NOVSX:       # %bb.0: # %entry454; NOVSX-NEXT:    mflr r0455; NOVSX-NEXT:    stdu r1, -32(r1)456; NOVSX-NEXT:    std r0, 48(r1)457; NOVSX-NEXT:    .cfi_def_cfa_offset 32458; NOVSX-NEXT:    .cfi_offset lr, 16459; NOVSX-NEXT:    bl __fixunskfsi460; NOVSX-NEXT:    nop461; NOVSX-NEXT:    addi r1, r1, 32462; NOVSX-NEXT:    ld r0, 16(r1)463; NOVSX-NEXT:    mtlr r0464; NOVSX-NEXT:    blr465entry:466  %conv = tail call i32 @llvm.experimental.constrained.fptoui.i32.f128(fp128 %m, metadata !"fpexcept.strict") #0467  ret i32 %conv468}469 470define signext i32 @ppcq_to_i32(ppc_fp128 %m) #0 {471; P8-LABEL: ppcq_to_i32:472; P8:       # %bb.0: # %entry473; P8-NEXT:    mffs f0474; P8-NEXT:    mtfsb1 31475; P8-NEXT:    mtfsb0 30476; P8-NEXT:    fadd f1, f2, f1477; P8-NEXT:    mtfsf 1, f0478; P8-NEXT:    xscvdpsxws f0, f1479; P8-NEXT:    mffprwz r3, f0480; P8-NEXT:    extsw r3, r3481; P8-NEXT:    blr482;483; P9-LABEL: ppcq_to_i32:484; P9:       # %bb.0: # %entry485; P9-NEXT:    mffs f0486; P9-NEXT:    mtfsb1 31487; P9-NEXT:    mtfsb0 30488; P9-NEXT:    fadd f1, f2, f1489; P9-NEXT:    mtfsf 1, f0490; P9-NEXT:    xscvdpsxws f0, f1491; P9-NEXT:    mffprwz r3, f0492; P9-NEXT:    extsw r3, r3493; P9-NEXT:    blr494;495; NOVSX-LABEL: ppcq_to_i32:496; NOVSX:       # %bb.0: # %entry497; NOVSX-NEXT:    mffs f0498; NOVSX-NEXT:    mtfsb1 31499; NOVSX-NEXT:    mtfsb0 30500; NOVSX-NEXT:    addi r3, r1, -4501; NOVSX-NEXT:    fadd f1, f2, f1502; NOVSX-NEXT:    mtfsf 1, f0503; NOVSX-NEXT:    fctiwz f0, f1504; NOVSX-NEXT:    stfiwx f0, 0, r3505; NOVSX-NEXT:    lwa r3, -4(r1)506; NOVSX-NEXT:    blr507entry:508  %conv = tail call i32 @llvm.experimental.constrained.fptosi.i32.ppcf128(ppc_fp128 %m, metadata !"fpexcept.strict") #0509  ret i32 %conv510}511 512define i64 @ppcq_to_i64(ppc_fp128 %m) #0 {513; P8-LABEL: ppcq_to_i64:514; P8:       # %bb.0: # %entry515; P8-NEXT:    mflr r0516; P8-NEXT:    stdu r1, -112(r1)517; P8-NEXT:    std r0, 128(r1)518; P8-NEXT:    .cfi_def_cfa_offset 112519; P8-NEXT:    .cfi_offset lr, 16520; P8-NEXT:    bl __fixtfdi521; P8-NEXT:    nop522; P8-NEXT:    addi r1, r1, 112523; P8-NEXT:    ld r0, 16(r1)524; P8-NEXT:    mtlr r0525; P8-NEXT:    blr526;527; P9-LABEL: ppcq_to_i64:528; P9:       # %bb.0: # %entry529; P9-NEXT:    mflr r0530; P9-NEXT:    stdu r1, -32(r1)531; P9-NEXT:    std r0, 48(r1)532; P9-NEXT:    .cfi_def_cfa_offset 32533; P9-NEXT:    .cfi_offset lr, 16534; P9-NEXT:    bl __fixtfdi535; P9-NEXT:    nop536; P9-NEXT:    addi r1, r1, 32537; P9-NEXT:    ld r0, 16(r1)538; P9-NEXT:    mtlr r0539; P9-NEXT:    blr540;541; NOVSX-LABEL: ppcq_to_i64:542; NOVSX:       # %bb.0: # %entry543; NOVSX-NEXT:    mflr r0544; NOVSX-NEXT:    stdu r1, -32(r1)545; NOVSX-NEXT:    std r0, 48(r1)546; NOVSX-NEXT:    .cfi_def_cfa_offset 32547; NOVSX-NEXT:    .cfi_offset lr, 16548; NOVSX-NEXT:    bl __fixtfdi549; NOVSX-NEXT:    nop550; NOVSX-NEXT:    addi r1, r1, 32551; NOVSX-NEXT:    ld r0, 16(r1)552; NOVSX-NEXT:    mtlr r0553; NOVSX-NEXT:    blr554entry:555  %conv = tail call i64 @llvm.experimental.constrained.fptosi.i64.ppcf128(ppc_fp128 %m, metadata !"fpexcept.strict") #0556  ret i64 %conv557}558 559define i64 @ppcq_to_u64(ppc_fp128 %m) #0 {560; P8-LABEL: ppcq_to_u64:561; P8:       # %bb.0: # %entry562; P8-NEXT:    mflr r0563; P8-NEXT:    stdu r1, -112(r1)564; P8-NEXT:    std r0, 128(r1)565; P8-NEXT:    .cfi_def_cfa_offset 112566; P8-NEXT:    .cfi_offset lr, 16567; P8-NEXT:    bl __fixunstfdi568; P8-NEXT:    nop569; P8-NEXT:    addi r1, r1, 112570; P8-NEXT:    ld r0, 16(r1)571; P8-NEXT:    mtlr r0572; P8-NEXT:    blr573;574; P9-LABEL: ppcq_to_u64:575; P9:       # %bb.0: # %entry576; P9-NEXT:    mflr r0577; P9-NEXT:    stdu r1, -32(r1)578; P9-NEXT:    std r0, 48(r1)579; P9-NEXT:    .cfi_def_cfa_offset 32580; P9-NEXT:    .cfi_offset lr, 16581; P9-NEXT:    bl __fixunstfdi582; P9-NEXT:    nop583; P9-NEXT:    addi r1, r1, 32584; P9-NEXT:    ld r0, 16(r1)585; P9-NEXT:    mtlr r0586; P9-NEXT:    blr587;588; NOVSX-LABEL: ppcq_to_u64:589; NOVSX:       # %bb.0: # %entry590; NOVSX-NEXT:    mflr r0591; NOVSX-NEXT:    stdu r1, -32(r1)592; NOVSX-NEXT:    std r0, 48(r1)593; NOVSX-NEXT:    .cfi_def_cfa_offset 32594; NOVSX-NEXT:    .cfi_offset lr, 16595; NOVSX-NEXT:    bl __fixunstfdi596; NOVSX-NEXT:    nop597; NOVSX-NEXT:    addi r1, r1, 32598; NOVSX-NEXT:    ld r0, 16(r1)599; NOVSX-NEXT:    mtlr r0600; NOVSX-NEXT:    blr601entry:602  %conv = tail call i64 @llvm.experimental.constrained.fptoui.i64.ppcf128(ppc_fp128 %m, metadata !"fpexcept.strict") #0603  ret i64 %conv604}605 606define zeroext i32 @ppcq_to_u32(ppc_fp128 %m) #0 {607; P8-LABEL: ppcq_to_u32:608; P8:       # %bb.0: # %entry609; P8-NEXT:    mflr r0610; P8-NEXT:    stdu r1, -128(r1)611; P8-NEXT:    std r0, 144(r1)612; P8-NEXT:    .cfi_def_cfa_offset 128613; P8-NEXT:    .cfi_offset lr, 16614; P8-NEXT:    .cfi_offset r30, -16615; P8-NEXT:    addis r3, r2, .LCPI13_0@toc@ha616; P8-NEXT:    xxlxor f3, f3, f3617; P8-NEXT:    std r30, 112(r1) # 8-byte Folded Spill618; P8-NEXT:    lfs f0, .LCPI13_0@toc@l(r3)619; P8-NEXT:    fcmpo cr1, f2, f3620; P8-NEXT:    lis r3, -32768621; P8-NEXT:    fcmpo cr0, f1, f0622; P8-NEXT:    crand 4*cr5+lt, eq, 4*cr1+lt623; P8-NEXT:    crandc 4*cr5+gt, lt, eq624; P8-NEXT:    cror 4*cr5+lt, 4*cr5+gt, 4*cr5+lt625; P8-NEXT:    isel r30, 0, r3, 4*cr5+lt626; P8-NEXT:    bc 12, 4*cr5+lt, .LBB13_2627; P8-NEXT:  # %bb.1: # %entry628; P8-NEXT:    fmr f3, f0629; P8-NEXT:  .LBB13_2: # %entry630; P8-NEXT:    xxlxor f4, f4, f4631; P8-NEXT:    bl __gcc_qsub632; P8-NEXT:    nop633; P8-NEXT:    mffs f0634; P8-NEXT:    mtfsb1 31635; P8-NEXT:    mtfsb0 30636; P8-NEXT:    fadd f1, f2, f1637; P8-NEXT:    mtfsf 1, f0638; P8-NEXT:    xscvdpsxws f0, f1639; P8-NEXT:    mffprwz r3, f0640; P8-NEXT:    xor r3, r3, r30641; P8-NEXT:    ld r30, 112(r1) # 8-byte Folded Reload642; P8-NEXT:    clrldi r3, r3, 32643; P8-NEXT:    addi r1, r1, 128644; P8-NEXT:    ld r0, 16(r1)645; P8-NEXT:    mtlr r0646; P8-NEXT:    blr647;648; P9-LABEL: ppcq_to_u32:649; P9:       # %bb.0: # %entry650; P9-NEXT:    mflr r0651; P9-NEXT:    .cfi_def_cfa_offset 48652; P9-NEXT:    .cfi_offset lr, 16653; P9-NEXT:    .cfi_offset r30, -16654; P9-NEXT:    std r30, -16(r1) # 8-byte Folded Spill655; P9-NEXT:    stdu r1, -48(r1)656; P9-NEXT:    addis r3, r2, .LCPI13_0@toc@ha657; P9-NEXT:    xxlxor f3, f3, f3658; P9-NEXT:    std r0, 64(r1)659; P9-NEXT:    lfs f0, .LCPI13_0@toc@l(r3)660; P9-NEXT:    fcmpo cr1, f2, f3661; P9-NEXT:    lis r3, -32768662; P9-NEXT:    fcmpo cr0, f1, f0663; P9-NEXT:    crand 4*cr5+lt, eq, 4*cr1+lt664; P9-NEXT:    crandc 4*cr5+gt, lt, eq665; P9-NEXT:    cror 4*cr5+lt, 4*cr5+gt, 4*cr5+lt666; P9-NEXT:    isel r30, 0, r3, 4*cr5+lt667; P9-NEXT:    bc 12, 4*cr5+lt, .LBB13_2668; P9-NEXT:  # %bb.1: # %entry669; P9-NEXT:    fmr f3, f0670; P9-NEXT:  .LBB13_2: # %entry671; P9-NEXT:    xxlxor f4, f4, f4672; P9-NEXT:    bl __gcc_qsub673; P9-NEXT:    nop674; P9-NEXT:    mffs f0675; P9-NEXT:    mtfsb1 31676; P9-NEXT:    mtfsb0 30677; P9-NEXT:    fadd f1, f2, f1678; P9-NEXT:    mtfsf 1, f0679; P9-NEXT:    xscvdpsxws f0, f1680; P9-NEXT:    mffprwz r3, f0681; P9-NEXT:    xor r3, r3, r30682; P9-NEXT:    clrldi r3, r3, 32683; P9-NEXT:    addi r1, r1, 48684; P9-NEXT:    ld r0, 16(r1)685; P9-NEXT:    ld r30, -16(r1) # 8-byte Folded Reload686; P9-NEXT:    mtlr r0687; P9-NEXT:    blr688;689; NOVSX-LABEL: ppcq_to_u32:690; NOVSX:       # %bb.0: # %entry691; NOVSX-NEXT:    mfocrf r12, 32692; NOVSX-NEXT:    stw r12, 8(r1)693; NOVSX-NEXT:    mflr r0694; NOVSX-NEXT:    stdu r1, -48(r1)695; NOVSX-NEXT:    std r0, 64(r1)696; NOVSX-NEXT:    .cfi_def_cfa_offset 48697; NOVSX-NEXT:    .cfi_offset lr, 16698; NOVSX-NEXT:    .cfi_offset cr2, 8699; NOVSX-NEXT:    addis r3, r2, .LCPI13_0@toc@ha700; NOVSX-NEXT:    lfs f0, .LCPI13_0@toc@l(r3)701; NOVSX-NEXT:    addis r3, r2, .LCPI13_1@toc@ha702; NOVSX-NEXT:    lfs f4, .LCPI13_1@toc@l(r3)703; NOVSX-NEXT:    fcmpo cr0, f1, f0704; NOVSX-NEXT:    fcmpo cr1, f2, f4705; NOVSX-NEXT:    fmr f3, f4706; NOVSX-NEXT:    crandc 4*cr5+gt, lt, eq707; NOVSX-NEXT:    crand 4*cr5+lt, eq, 4*cr1+lt708; NOVSX-NEXT:    cror 4*cr2+lt, 4*cr5+gt, 4*cr5+lt709; NOVSX-NEXT:    bc 12, 4*cr2+lt, .LBB13_2710; NOVSX-NEXT:  # %bb.1: # %entry711; NOVSX-NEXT:    fmr f3, f0712; NOVSX-NEXT:  .LBB13_2: # %entry713; NOVSX-NEXT:    bl __gcc_qsub714; NOVSX-NEXT:    nop715; NOVSX-NEXT:    mffs f0716; NOVSX-NEXT:    mtfsb1 31717; NOVSX-NEXT:    mtfsb0 30718; NOVSX-NEXT:    addi r3, r1, 44719; NOVSX-NEXT:    fadd f1, f2, f1720; NOVSX-NEXT:    mtfsf 1, f0721; NOVSX-NEXT:    fctiwz f0, f1722; NOVSX-NEXT:    stfiwx f0, 0, r3723; NOVSX-NEXT:    lis r3, -32768724; NOVSX-NEXT:    lwz r4, 44(r1)725; NOVSX-NEXT:    isel r3, 0, r3, 4*cr2+lt726; NOVSX-NEXT:    xor r3, r4, r3727; NOVSX-NEXT:    clrldi r3, r3, 32728; NOVSX-NEXT:    addi r1, r1, 48729; NOVSX-NEXT:    ld r0, 16(r1)730; NOVSX-NEXT:    lwz r12, 8(r1)731; NOVSX-NEXT:    mtlr r0732; NOVSX-NEXT:    mtocrf 32, r12733; NOVSX-NEXT:    blr734entry:735  %conv = tail call i32 @llvm.experimental.constrained.fptoui.i32.ppcf128(ppc_fp128 %m, metadata !"fpexcept.strict") #0736  ret i32 %conv737}738 739define fp128 @i1_to_q(i1 signext %m) #0 {740; P8-LABEL: i1_to_q:741; P8:       # %bb.0: # %entry742; P8-NEXT:    mflr r0743; P8-NEXT:    stdu r1, -112(r1)744; P8-NEXT:    std r0, 128(r1)745; P8-NEXT:    .cfi_def_cfa_offset 112746; P8-NEXT:    .cfi_offset lr, 16747; P8-NEXT:    bl __floatsikf748; P8-NEXT:    nop749; P8-NEXT:    addi r1, r1, 112750; P8-NEXT:    ld r0, 16(r1)751; P8-NEXT:    mtlr r0752; P8-NEXT:    blr753;754; P9-LABEL: i1_to_q:755; P9:       # %bb.0: # %entry756; P9-NEXT:    mtvsrwa v2, r3757; P9-NEXT:    xscvsdqp v2, v2758; P9-NEXT:    blr759;760; NOVSX-LABEL: i1_to_q:761; NOVSX:       # %bb.0: # %entry762; NOVSX-NEXT:    mflr r0763; NOVSX-NEXT:    stdu r1, -32(r1)764; NOVSX-NEXT:    std r0, 48(r1)765; NOVSX-NEXT:    .cfi_def_cfa_offset 32766; NOVSX-NEXT:    .cfi_offset lr, 16767; NOVSX-NEXT:    bl __floatsikf768; NOVSX-NEXT:    nop769; NOVSX-NEXT:    addi r1, r1, 32770; NOVSX-NEXT:    ld r0, 16(r1)771; NOVSX-NEXT:    mtlr r0772; NOVSX-NEXT:    blr773entry:774  %conv = tail call fp128 @llvm.experimental.constrained.sitofp.f128.i1(i1 %m, metadata !"round.dynamic", metadata !"fpexcept.strict") #0775  ret fp128 %conv776}777 778define fp128 @u1_to_q(i1 zeroext %m) #0 {779; P8-LABEL: u1_to_q:780; P8:       # %bb.0: # %entry781; P8-NEXT:    mflr r0782; P8-NEXT:    stdu r1, -112(r1)783; P8-NEXT:    std r0, 128(r1)784; P8-NEXT:    .cfi_def_cfa_offset 112785; P8-NEXT:    .cfi_offset lr, 16786; P8-NEXT:    bl __floatsikf787; P8-NEXT:    nop788; P8-NEXT:    addi r1, r1, 112789; P8-NEXT:    ld r0, 16(r1)790; P8-NEXT:    mtlr r0791; P8-NEXT:    blr792;793; P9-LABEL: u1_to_q:794; P9:       # %bb.0: # %entry795; P9-NEXT:    mtvsrwa v2, r3796; P9-NEXT:    xscvsdqp v2, v2797; P9-NEXT:    blr798;799; NOVSX-LABEL: u1_to_q:800; NOVSX:       # %bb.0: # %entry801; NOVSX-NEXT:    mflr r0802; NOVSX-NEXT:    stdu r1, -32(r1)803; NOVSX-NEXT:    std r0, 48(r1)804; NOVSX-NEXT:    .cfi_def_cfa_offset 32805; NOVSX-NEXT:    .cfi_offset lr, 16806; NOVSX-NEXT:    bl __floatunsikf807; NOVSX-NEXT:    nop808; NOVSX-NEXT:    addi r1, r1, 32809; NOVSX-NEXT:    ld r0, 16(r1)810; NOVSX-NEXT:    mtlr r0811; NOVSX-NEXT:    blr812entry:813  %conv = tail call fp128 @llvm.experimental.constrained.uitofp.f128.i1(i1 %m, metadata !"round.dynamic", metadata !"fpexcept.strict") #0814  ret fp128 %conv815}816 817define ppc_fp128 @i1_to_ppcq(i1 signext %m) #0 {818; P8-LABEL: i1_to_ppcq:819; P8:       # %bb.0: # %entry820; P8-NEXT:    mtfprwa f0, r3821; P8-NEXT:    xxlxor f2, f2, f2822; P8-NEXT:    xscvsxddp f1, f0823; P8-NEXT:    blr824;825; P9-LABEL: i1_to_ppcq:826; P9:       # %bb.0: # %entry827; P9-NEXT:    mtfprwa f0, r3828; P9-NEXT:    xxlxor f2, f2, f2829; P9-NEXT:    xscvsxddp f1, f0830; P9-NEXT:    blr831;832; NOVSX-LABEL: i1_to_ppcq:833; NOVSX:       # %bb.0: # %entry834; NOVSX-NEXT:    stw r3, -4(r1)835; NOVSX-NEXT:    addi r3, r1, -4836; NOVSX-NEXT:    lfiwax f0, 0, r3837; NOVSX-NEXT:    addis r3, r2, .LCPI16_0@toc@ha838; NOVSX-NEXT:    lfs f2, .LCPI16_0@toc@l(r3)839; NOVSX-NEXT:    fcfid f1, f0840; NOVSX-NEXT:    blr841entry:842  %conv = tail call ppc_fp128 @llvm.experimental.constrained.sitofp.ppcf128.i1(i1 %m, metadata !"round.dynamic", metadata !"fpexcept.strict") #0843  ret ppc_fp128 %conv844}845 846define ppc_fp128 @u1_to_ppcq(i1 zeroext %m) #0 {847; P8-LABEL: u1_to_ppcq:848; P8:       # %bb.0: # %entry849; P8-NEXT:    mtfprwa f0, r3850; P8-NEXT:    xxlxor f2, f2, f2851; P8-NEXT:    xscvsxddp f1, f0852; P8-NEXT:    blr853;854; P9-LABEL: u1_to_ppcq:855; P9:       # %bb.0: # %entry856; P9-NEXT:    mtfprwa f0, r3857; P9-NEXT:    xxlxor f2, f2, f2858; P9-NEXT:    xscvsxddp f1, f0859; P9-NEXT:    blr860;861; NOVSX-LABEL: u1_to_ppcq:862; NOVSX:       # %bb.0: # %entry863; NOVSX-NEXT:    stw r3, -4(r1)864; NOVSX-NEXT:    addi r3, r1, -4865; NOVSX-NEXT:    lfiwax f0, 0, r3866; NOVSX-NEXT:    addis r3, r2, .LCPI17_0@toc@ha867; NOVSX-NEXT:    lfs f2, .LCPI17_0@toc@l(r3)868; NOVSX-NEXT:    fcfid f1, f0869; NOVSX-NEXT:    blr870entry:871  %conv = tail call ppc_fp128 @llvm.experimental.constrained.uitofp.ppcf128.i1(i1 %m, metadata !"round.dynamic", metadata !"fpexcept.strict") #0872  ret ppc_fp128 %conv873}874 875define fp128 @i32_to_q(i32 signext %m) #0 {876; P8-LABEL: i32_to_q:877; P8:       # %bb.0: # %entry878; P8-NEXT:    mflr r0879; P8-NEXT:    stdu r1, -112(r1)880; P8-NEXT:    std r0, 128(r1)881; P8-NEXT:    .cfi_def_cfa_offset 112882; P8-NEXT:    .cfi_offset lr, 16883; P8-NEXT:    bl __floatsikf884; P8-NEXT:    nop885; P8-NEXT:    addi r1, r1, 112886; P8-NEXT:    ld r0, 16(r1)887; P8-NEXT:    mtlr r0888; P8-NEXT:    blr889;890; P9-LABEL: i32_to_q:891; P9:       # %bb.0: # %entry892; P9-NEXT:    mtvsrwa v2, r3893; P9-NEXT:    xscvsdqp v2, v2894; P9-NEXT:    blr895;896; NOVSX-LABEL: i32_to_q:897; NOVSX:       # %bb.0: # %entry898; NOVSX-NEXT:    mflr r0899; NOVSX-NEXT:    stdu r1, -32(r1)900; NOVSX-NEXT:    std r0, 48(r1)901; NOVSX-NEXT:    .cfi_def_cfa_offset 32902; NOVSX-NEXT:    .cfi_offset lr, 16903; NOVSX-NEXT:    bl __floatsikf904; NOVSX-NEXT:    nop905; NOVSX-NEXT:    addi r1, r1, 32906; NOVSX-NEXT:    ld r0, 16(r1)907; NOVSX-NEXT:    mtlr r0908; NOVSX-NEXT:    blr909entry:910  %conv = tail call fp128 @llvm.experimental.constrained.sitofp.f128.i32(i32 %m, metadata !"round.dynamic", metadata !"fpexcept.strict") #0911  ret fp128 %conv912}913 914define fp128 @i64_to_q(i64 %m) #0 {915; P8-LABEL: i64_to_q:916; P8:       # %bb.0: # %entry917; P8-NEXT:    mflr r0918; P8-NEXT:    stdu r1, -112(r1)919; P8-NEXT:    std r0, 128(r1)920; P8-NEXT:    .cfi_def_cfa_offset 112921; P8-NEXT:    .cfi_offset lr, 16922; P8-NEXT:    bl __floatdikf923; P8-NEXT:    nop924; P8-NEXT:    addi r1, r1, 112925; P8-NEXT:    ld r0, 16(r1)926; P8-NEXT:    mtlr r0927; P8-NEXT:    blr928;929; P9-LABEL: i64_to_q:930; P9:       # %bb.0: # %entry931; P9-NEXT:    mtvsrd v2, r3932; P9-NEXT:    xscvsdqp v2, v2933; P9-NEXT:    blr934;935; NOVSX-LABEL: i64_to_q:936; NOVSX:       # %bb.0: # %entry937; NOVSX-NEXT:    mflr r0938; NOVSX-NEXT:    stdu r1, -32(r1)939; NOVSX-NEXT:    std r0, 48(r1)940; NOVSX-NEXT:    .cfi_def_cfa_offset 32941; NOVSX-NEXT:    .cfi_offset lr, 16942; NOVSX-NEXT:    bl __floatdikf943; NOVSX-NEXT:    nop944; NOVSX-NEXT:    addi r1, r1, 32945; NOVSX-NEXT:    ld r0, 16(r1)946; NOVSX-NEXT:    mtlr r0947; NOVSX-NEXT:    blr948entry:949  %conv = tail call fp128 @llvm.experimental.constrained.sitofp.f128.i64(i64 %m, metadata !"round.dynamic", metadata !"fpexcept.strict") #0950  ret fp128 %conv951}952 953define fp128 @u32_to_q(i32 zeroext %m) #0 {954; P8-LABEL: u32_to_q:955; P8:       # %bb.0: # %entry956; P8-NEXT:    mflr r0957; P8-NEXT:    stdu r1, -112(r1)958; P8-NEXT:    std r0, 128(r1)959; P8-NEXT:    .cfi_def_cfa_offset 112960; P8-NEXT:    .cfi_offset lr, 16961; P8-NEXT:    bl __floatunsikf962; P8-NEXT:    nop963; P8-NEXT:    addi r1, r1, 112964; P8-NEXT:    ld r0, 16(r1)965; P8-NEXT:    mtlr r0966; P8-NEXT:    blr967;968; P9-LABEL: u32_to_q:969; P9:       # %bb.0: # %entry970; P9-NEXT:    mtvsrwz v2, r3971; P9-NEXT:    xscvudqp v2, v2972; P9-NEXT:    blr973;974; NOVSX-LABEL: u32_to_q:975; NOVSX:       # %bb.0: # %entry976; NOVSX-NEXT:    mflr r0977; NOVSX-NEXT:    stdu r1, -32(r1)978; NOVSX-NEXT:    std r0, 48(r1)979; NOVSX-NEXT:    .cfi_def_cfa_offset 32980; NOVSX-NEXT:    .cfi_offset lr, 16981; NOVSX-NEXT:    bl __floatunsikf982; NOVSX-NEXT:    nop983; NOVSX-NEXT:    addi r1, r1, 32984; NOVSX-NEXT:    ld r0, 16(r1)985; NOVSX-NEXT:    mtlr r0986; NOVSX-NEXT:    blr987entry:988  %conv = tail call fp128 @llvm.experimental.constrained.uitofp.f128.i32(i32 %m, metadata !"round.dynamic", metadata !"fpexcept.strict") #0989  ret fp128 %conv990}991 992define fp128 @u64_to_q(i64 %m) #0 {993; P8-LABEL: u64_to_q:994; P8:       # %bb.0: # %entry995; P8-NEXT:    mflr r0996; P8-NEXT:    stdu r1, -112(r1)997; P8-NEXT:    std r0, 128(r1)998; P8-NEXT:    .cfi_def_cfa_offset 112999; P8-NEXT:    .cfi_offset lr, 161000; P8-NEXT:    bl __floatundikf1001; P8-NEXT:    nop1002; P8-NEXT:    addi r1, r1, 1121003; P8-NEXT:    ld r0, 16(r1)1004; P8-NEXT:    mtlr r01005; P8-NEXT:    blr1006;1007; P9-LABEL: u64_to_q:1008; P9:       # %bb.0: # %entry1009; P9-NEXT:    mtvsrd v2, r31010; P9-NEXT:    xscvudqp v2, v21011; P9-NEXT:    blr1012;1013; NOVSX-LABEL: u64_to_q:1014; NOVSX:       # %bb.0: # %entry1015; NOVSX-NEXT:    mflr r01016; NOVSX-NEXT:    stdu r1, -32(r1)1017; NOVSX-NEXT:    std r0, 48(r1)1018; NOVSX-NEXT:    .cfi_def_cfa_offset 321019; NOVSX-NEXT:    .cfi_offset lr, 161020; NOVSX-NEXT:    bl __floatundikf1021; NOVSX-NEXT:    nop1022; NOVSX-NEXT:    addi r1, r1, 321023; NOVSX-NEXT:    ld r0, 16(r1)1024; NOVSX-NEXT:    mtlr r01025; NOVSX-NEXT:    blr1026entry:1027  %conv = tail call fp128 @llvm.experimental.constrained.uitofp.f128.i64(i64 %m, metadata !"round.dynamic", metadata !"fpexcept.strict") #01028  ret fp128 %conv1029}1030 1031attributes #0 = { strictfp }1032