1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc -mcpu=pwr7 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \ 3; RUN: -mtriple=powerpc64-unknown-unknown -verify-machineinstrs < %s | \ 4; RUN: FileCheck %s --check-prefix=BE 5; RUN: llc -mcpu=pwr8 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \ 6; RUN: -mtriple=powerpc64le-unknown-unknown -verify-machineinstrs < %s | \ 7; RUN: FileCheck %s 8; RUN: llc -mcpu=pwr8 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \ 9; RUN: -mtriple=powerpc64le-unknown-unknown -verify-machineinstrs < %s \ 10; RUN: --enable-unsafe-fp-math | FileCheck %s --check-prefix=FAST 11 12define <1 x i64> @llrint_v1i64_v1f16(<1 x half> %x) { 13; BE-LABEL: llrint_v1i64_v1f16: 14; BE: # %bb.0: 15; BE-NEXT: mflr r0 16; BE-NEXT: stdu r1, -112(r1) 17; BE-NEXT: std r0, 128(r1) 18; BE-NEXT: .cfi_def_cfa_offset 112 19; BE-NEXT: .cfi_offset lr, 16 20; BE-NEXT: bl __gnu_f2h_ieee 21; BE-NEXT: nop 22; BE-NEXT: clrldi r3, r3, 48 23; BE-NEXT: bl __gnu_h2f_ieee 24; BE-NEXT: nop 25; BE-NEXT: bl llrintf 26; BE-NEXT: nop 27; BE-NEXT: addi r1, r1, 112 28; BE-NEXT: ld r0, 16(r1) 29; BE-NEXT: mtlr r0 30; BE-NEXT: blr 31; 32; CHECK-LABEL: llrint_v1i64_v1f16: 33; CHECK: # %bb.0: 34; CHECK-NEXT: mflr r0 35; CHECK-NEXT: stdu r1, -32(r1) 36; CHECK-NEXT: std r0, 48(r1) 37; CHECK-NEXT: .cfi_def_cfa_offset 32 38; CHECK-NEXT: .cfi_offset lr, 16 39; CHECK-NEXT: bl __gnu_f2h_ieee 40; CHECK-NEXT: nop 41; CHECK-NEXT: clrldi r3, r3, 48 42; CHECK-NEXT: bl __gnu_h2f_ieee 43; CHECK-NEXT: nop 44; CHECK-NEXT: bl llrintf 45; CHECK-NEXT: nop 46; CHECK-NEXT: addi r1, r1, 32 47; CHECK-NEXT: ld r0, 16(r1) 48; CHECK-NEXT: mtlr r0 49; CHECK-NEXT: blr 50; 51; FAST-LABEL: llrint_v1i64_v1f16: 52; FAST: # %bb.0: 53; FAST-NEXT: mflr r0 54; FAST-NEXT: stdu r1, -32(r1) 55; FAST-NEXT: std r0, 48(r1) 56; FAST-NEXT: .cfi_def_cfa_offset 32 57; FAST-NEXT: .cfi_offset lr, 16 58; FAST-NEXT: bl __gnu_f2h_ieee 59; FAST-NEXT: nop 60; FAST-NEXT: clrldi r3, r3, 48 61; FAST-NEXT: bl __gnu_h2f_ieee 62; FAST-NEXT: nop 63; FAST-NEXT: fctid f0, f1 64; FAST-NEXT: mffprd r3, f0 65; FAST-NEXT: addi r1, r1, 32 66; FAST-NEXT: ld r0, 16(r1) 67; FAST-NEXT: mtlr r0 68; FAST-NEXT: blr 69 %a = call <1 x i64> @llvm.llrint.v1i64.v1f16(<1 x half> %x) 70 ret <1 x i64> %a 71} 72declare <1 x i64> @llvm.llrint.v1i64.v1f16(<1 x half>) 73 74define <2 x i64> @llrint_v1i64_v2f16(<2 x half> %x) { 75; BE-LABEL: llrint_v1i64_v2f16: 76; BE: # %bb.0: 77; BE-NEXT: mflr r0 78; BE-NEXT: stdu r1, -160(r1) 79; BE-NEXT: std r0, 176(r1) 80; BE-NEXT: .cfi_def_cfa_offset 160 81; BE-NEXT: .cfi_offset lr, 16 82; BE-NEXT: .cfi_offset r30, -24 83; BE-NEXT: .cfi_offset f31, -8 84; BE-NEXT: stfd f31, 152(r1) # 8-byte Folded Spill 85; BE-NEXT: fmr f31, f1 86; BE-NEXT: fmr f1, f2 87; BE-NEXT: std r30, 136(r1) # 8-byte Folded Spill 88; BE-NEXT: bl __gnu_f2h_ieee 89; BE-NEXT: nop 90; BE-NEXT: fmr f1, f31 91; BE-NEXT: mr r30, r3 92; BE-NEXT: bl __gnu_f2h_ieee 93; BE-NEXT: nop 94; BE-NEXT: clrldi r3, r3, 48 95; BE-NEXT: bl __gnu_h2f_ieee 96; BE-NEXT: nop 97; BE-NEXT: clrldi r3, r30, 48 98; BE-NEXT: fmr f31, f1 99; BE-NEXT: bl __gnu_h2f_ieee 100; BE-NEXT: nop 101; BE-NEXT: bl llrintf 102; BE-NEXT: nop 103; BE-NEXT: fmr f1, f31 104; BE-NEXT: std r3, 120(r1) 105; BE-NEXT: bl llrintf 106; BE-NEXT: nop 107; BE-NEXT: std r3, 112(r1) 108; BE-NEXT: addi r3, r1, 112 109; BE-NEXT: ld r30, 136(r1) # 8-byte Folded Reload 110; BE-NEXT: lfd f31, 152(r1) # 8-byte Folded Reload 111; BE-NEXT: lxvd2x v2, 0, r3 112; BE-NEXT: addi r1, r1, 160 113; BE-NEXT: ld r0, 16(r1) 114; BE-NEXT: mtlr r0 115; BE-NEXT: blr 116; 117; CHECK-LABEL: llrint_v1i64_v2f16: 118; CHECK: # %bb.0: 119; CHECK-NEXT: mflr r0 120; CHECK-NEXT: stdu r1, -96(r1) 121; CHECK-NEXT: std r0, 112(r1) 122; CHECK-NEXT: .cfi_def_cfa_offset 96 123; CHECK-NEXT: .cfi_offset lr, 16 124; CHECK-NEXT: .cfi_offset r30, -24 125; CHECK-NEXT: .cfi_offset f31, -8 126; CHECK-NEXT: .cfi_offset v31, -48 127; CHECK-NEXT: li r3, 48 128; CHECK-NEXT: std r30, 72(r1) # 8-byte Folded Spill 129; CHECK-NEXT: stfd f31, 88(r1) # 8-byte Folded Spill 130; CHECK-NEXT: fmr f31, f2 131; CHECK-NEXT: stvx v31, r1, r3 # 16-byte Folded Spill 132; CHECK-NEXT: bl __gnu_f2h_ieee 133; CHECK-NEXT: nop 134; CHECK-NEXT: fmr f1, f31 135; CHECK-NEXT: mr r30, r3 136; CHECK-NEXT: bl __gnu_f2h_ieee 137; CHECK-NEXT: nop 138; CHECK-NEXT: clrldi r3, r3, 48 139; CHECK-NEXT: bl __gnu_h2f_ieee 140; CHECK-NEXT: nop 141; CHECK-NEXT: clrldi r3, r30, 48 142; CHECK-NEXT: fmr f31, f1 143; CHECK-NEXT: bl __gnu_h2f_ieee 144; CHECK-NEXT: nop 145; CHECK-NEXT: bl llrintf 146; CHECK-NEXT: nop 147; CHECK-NEXT: fmr f1, f31 148; CHECK-NEXT: mtvsrd v31, r3 149; CHECK-NEXT: bl llrintf 150; CHECK-NEXT: nop 151; CHECK-NEXT: mtfprd f0, r3 152; CHECK-NEXT: li r3, 48 153; CHECK-NEXT: lfd f31, 88(r1) # 8-byte Folded Reload 154; CHECK-NEXT: ld r30, 72(r1) # 8-byte Folded Reload 155; CHECK-NEXT: xxmrghd v2, vs0, v31 156; CHECK-NEXT: lvx v31, r1, r3 # 16-byte Folded Reload 157; CHECK-NEXT: addi r1, r1, 96 158; CHECK-NEXT: ld r0, 16(r1) 159; CHECK-NEXT: mtlr r0 160; CHECK-NEXT: blr 161; 162; FAST-LABEL: llrint_v1i64_v2f16: 163; FAST: # %bb.0: 164; FAST-NEXT: mflr r0 165; FAST-NEXT: .cfi_def_cfa_offset 48 166; FAST-NEXT: .cfi_offset lr, 16 167; FAST-NEXT: .cfi_offset f30, -16 168; FAST-NEXT: .cfi_offset f31, -8 169; FAST-NEXT: stfd f30, -16(r1) # 8-byte Folded Spill 170; FAST-NEXT: stfd f31, -8(r1) # 8-byte Folded Spill 171; FAST-NEXT: stdu r1, -48(r1) 172; FAST-NEXT: fmr f31, f1 173; FAST-NEXT: fmr f1, f2 174; FAST-NEXT: std r0, 64(r1) 175; FAST-NEXT: bl __gnu_f2h_ieee 176; FAST-NEXT: nop 177; FAST-NEXT: clrldi r3, r3, 48 178; FAST-NEXT: bl __gnu_h2f_ieee 179; FAST-NEXT: nop 180; FAST-NEXT: fmr f30, f1 181; FAST-NEXT: fmr f1, f31 182; FAST-NEXT: bl __gnu_f2h_ieee 183; FAST-NEXT: nop 184; FAST-NEXT: clrldi r3, r3, 48 185; FAST-NEXT: bl __gnu_h2f_ieee 186; FAST-NEXT: nop 187; FAST-NEXT: fctid f0, f1 188; FAST-NEXT: fctid f1, f30 189; FAST-NEXT: mffprd r3, f0 190; FAST-NEXT: mtfprd f0, r3 191; FAST-NEXT: mffprd r3, f1 192; FAST-NEXT: mtfprd f1, r3 193; FAST-NEXT: xxmrghd v2, vs1, vs0 194; FAST-NEXT: addi r1, r1, 48 195; FAST-NEXT: ld r0, 16(r1) 196; FAST-NEXT: lfd f31, -8(r1) # 8-byte Folded Reload 197; FAST-NEXT: lfd f30, -16(r1) # 8-byte Folded Reload 198; FAST-NEXT: mtlr r0 199; FAST-NEXT: blr 200 %a = call <2 x i64> @llvm.llrint.v2i64.v2f16(<2 x half> %x) 201 ret <2 x i64> %a 202} 203declare <2 x i64> @llvm.llrint.v2i64.v2f16(<2 x half>) 204 205define <4 x i64> @llrint_v4i64_v4f16(<4 x half> %x) { 206; BE-LABEL: llrint_v4i64_v4f16: 207; BE: # %bb.0: 208; BE-NEXT: mflr r0 209; BE-NEXT: stdu r1, -208(r1) 210; BE-NEXT: std r0, 224(r1) 211; BE-NEXT: .cfi_def_cfa_offset 208 212; BE-NEXT: .cfi_offset lr, 16 213; BE-NEXT: .cfi_offset r28, -56 214; BE-NEXT: .cfi_offset r29, -48 215; BE-NEXT: .cfi_offset r30, -40 216; BE-NEXT: .cfi_offset f29, -24 217; BE-NEXT: .cfi_offset f30, -16 218; BE-NEXT: .cfi_offset f31, -8 219; BE-NEXT: stfd f29, 184(r1) # 8-byte Folded Spill 220; BE-NEXT: fmr f29, f1 221; BE-NEXT: fmr f1, f2 222; BE-NEXT: std r28, 152(r1) # 8-byte Folded Spill 223; BE-NEXT: std r29, 160(r1) # 8-byte Folded Spill 224; BE-NEXT: std r30, 168(r1) # 8-byte Folded Spill 225; BE-NEXT: stfd f30, 192(r1) # 8-byte Folded Spill 226; BE-NEXT: stfd f31, 200(r1) # 8-byte Folded Spill 227; BE-NEXT: fmr f31, f4 228; BE-NEXT: fmr f30, f3 229; BE-NEXT: bl __gnu_f2h_ieee 230; BE-NEXT: nop 231; BE-NEXT: fmr f1, f29 232; BE-NEXT: mr r30, r3 233; BE-NEXT: bl __gnu_f2h_ieee 234; BE-NEXT: nop 235; BE-NEXT: fmr f1, f31 236; BE-NEXT: mr r29, r3 237; BE-NEXT: bl __gnu_f2h_ieee 238; BE-NEXT: nop 239; BE-NEXT: fmr f1, f30 240; BE-NEXT: mr r28, r3 241; BE-NEXT: bl __gnu_f2h_ieee 242; BE-NEXT: nop 243; BE-NEXT: clrldi r3, r3, 48 244; BE-NEXT: bl __gnu_h2f_ieee 245; BE-NEXT: nop 246; BE-NEXT: clrldi r3, r28, 48 247; BE-NEXT: fmr f31, f1 248; BE-NEXT: bl __gnu_h2f_ieee 249; BE-NEXT: nop 250; BE-NEXT: clrldi r3, r29, 48 251; BE-NEXT: fmr f30, f1 252; BE-NEXT: bl __gnu_h2f_ieee 253; BE-NEXT: nop 254; BE-NEXT: clrldi r3, r30, 48 255; BE-NEXT: fmr f29, f1 256; BE-NEXT: bl __gnu_h2f_ieee 257; BE-NEXT: nop 258; BE-NEXT: bl llrintf 259; BE-NEXT: nop 260; BE-NEXT: fmr f1, f29 261; BE-NEXT: std r3, 120(r1) 262; BE-NEXT: bl llrintf 263; BE-NEXT: nop 264; BE-NEXT: fmr f1, f30 265; BE-NEXT: std r3, 112(r1) 266; BE-NEXT: bl llrintf 267; BE-NEXT: nop 268; BE-NEXT: fmr f1, f31 269; BE-NEXT: std r3, 136(r1) 270; BE-NEXT: bl llrintf 271; BE-NEXT: nop 272; BE-NEXT: std r3, 128(r1) 273; BE-NEXT: addi r3, r1, 112 274; BE-NEXT: ld r30, 168(r1) # 8-byte Folded Reload 275; BE-NEXT: lfd f31, 200(r1) # 8-byte Folded Reload 276; BE-NEXT: lfd f30, 192(r1) # 8-byte Folded Reload 277; BE-NEXT: lfd f29, 184(r1) # 8-byte Folded Reload 278; BE-NEXT: lxvd2x v2, 0, r3 279; BE-NEXT: addi r3, r1, 128 280; BE-NEXT: ld r29, 160(r1) # 8-byte Folded Reload 281; BE-NEXT: ld r28, 152(r1) # 8-byte Folded Reload 282; BE-NEXT: lxvd2x v3, 0, r3 283; BE-NEXT: addi r1, r1, 208 284; BE-NEXT: ld r0, 16(r1) 285; BE-NEXT: mtlr r0 286; BE-NEXT: blr 287; 288; CHECK-LABEL: llrint_v4i64_v4f16: 289; CHECK: # %bb.0: 290; CHECK-NEXT: mflr r0 291; CHECK-NEXT: stdu r1, -144(r1) 292; CHECK-NEXT: std r0, 160(r1) 293; CHECK-NEXT: .cfi_def_cfa_offset 144 294; CHECK-NEXT: .cfi_offset lr, 16 295; CHECK-NEXT: .cfi_offset r28, -56 296; CHECK-NEXT: .cfi_offset r29, -48 297; CHECK-NEXT: .cfi_offset r30, -40 298; CHECK-NEXT: .cfi_offset f29, -24 299; CHECK-NEXT: .cfi_offset f30, -16 300; CHECK-NEXT: .cfi_offset f31, -8 301; CHECK-NEXT: .cfi_offset v30, -96 302; CHECK-NEXT: .cfi_offset v31, -80 303; CHECK-NEXT: li r3, 48 304; CHECK-NEXT: std r28, 88(r1) # 8-byte Folded Spill 305; CHECK-NEXT: std r29, 96(r1) # 8-byte Folded Spill 306; CHECK-NEXT: std r30, 104(r1) # 8-byte Folded Spill 307; CHECK-NEXT: stfd f29, 120(r1) # 8-byte Folded Spill 308; CHECK-NEXT: fmr f29, f2 309; CHECK-NEXT: stfd f30, 128(r1) # 8-byte Folded Spill 310; CHECK-NEXT: fmr f30, f3 311; CHECK-NEXT: stvx v30, r1, r3 # 16-byte Folded Spill 312; CHECK-NEXT: li r3, 64 313; CHECK-NEXT: stfd f31, 136(r1) # 8-byte Folded Spill 314; CHECK-NEXT: fmr f31, f4 315; CHECK-NEXT: stvx v31, r1, r3 # 16-byte Folded Spill 316; CHECK-NEXT: bl __gnu_f2h_ieee 317; CHECK-NEXT: nop 318; CHECK-NEXT: fmr f1, f29 319; CHECK-NEXT: mr r30, r3 320; CHECK-NEXT: bl __gnu_f2h_ieee 321; CHECK-NEXT: nop 322; CHECK-NEXT: fmr f1, f30 323; CHECK-NEXT: mr r29, r3 324; CHECK-NEXT: bl __gnu_f2h_ieee 325; CHECK-NEXT: nop 326; CHECK-NEXT: fmr f1, f31 327; CHECK-NEXT: mr r28, r3 328; CHECK-NEXT: bl __gnu_f2h_ieee 329; CHECK-NEXT: nop 330; CHECK-NEXT: clrldi r3, r3, 48 331; CHECK-NEXT: bl __gnu_h2f_ieee 332; CHECK-NEXT: nop 333; CHECK-NEXT: clrldi r3, r28, 48 334; CHECK-NEXT: fmr f31, f1 335; CHECK-NEXT: bl __gnu_h2f_ieee 336; CHECK-NEXT: nop 337; CHECK-NEXT: clrldi r3, r29, 48 338; CHECK-NEXT: fmr f30, f1 339; CHECK-NEXT: bl __gnu_h2f_ieee 340; CHECK-NEXT: nop 341; CHECK-NEXT: clrldi r3, r30, 48 342; CHECK-NEXT: fmr f29, f1 343; CHECK-NEXT: bl __gnu_h2f_ieee 344; CHECK-NEXT: nop 345; CHECK-NEXT: bl llrintf 346; CHECK-NEXT: nop 347; CHECK-NEXT: fmr f1, f29 348; CHECK-NEXT: mtvsrd v31, r3 349; CHECK-NEXT: bl llrintf 350; CHECK-NEXT: nop 351; CHECK-NEXT: fmr f1, f30 352; CHECK-NEXT: mtfprd f0, r3 353; CHECK-NEXT: xxmrghd v31, vs0, v31 354; CHECK-NEXT: bl llrintf 355; CHECK-NEXT: nop 356; CHECK-NEXT: fmr f1, f31 357; CHECK-NEXT: mtvsrd v30, r3 358; CHECK-NEXT: bl llrintf 359; CHECK-NEXT: nop 360; CHECK-NEXT: mtfprd f0, r3 361; CHECK-NEXT: li r3, 64 362; CHECK-NEXT: vmr v2, v31 363; CHECK-NEXT: lfd f31, 136(r1) # 8-byte Folded Reload 364; CHECK-NEXT: lfd f30, 128(r1) # 8-byte Folded Reload 365; CHECK-NEXT: lfd f29, 120(r1) # 8-byte Folded Reload 366; CHECK-NEXT: ld r30, 104(r1) # 8-byte Folded Reload 367; CHECK-NEXT: ld r29, 96(r1) # 8-byte Folded Reload 368; CHECK-NEXT: lvx v31, r1, r3 # 16-byte Folded Reload 369; CHECK-NEXT: li r3, 48 370; CHECK-NEXT: ld r28, 88(r1) # 8-byte Folded Reload 371; CHECK-NEXT: xxmrghd v3, vs0, v30 372; CHECK-NEXT: lvx v30, r1, r3 # 16-byte Folded Reload 373; CHECK-NEXT: addi r1, r1, 144 374; CHECK-NEXT: ld r0, 16(r1) 375; CHECK-NEXT: mtlr r0 376; CHECK-NEXT: blr 377; 378; FAST-LABEL: llrint_v4i64_v4f16: 379; FAST: # %bb.0: 380; FAST-NEXT: mflr r0 381; FAST-NEXT: .cfi_def_cfa_offset 64 382; FAST-NEXT: .cfi_offset lr, 16 383; FAST-NEXT: .cfi_offset f28, -32 384; FAST-NEXT: .cfi_offset f29, -24 385; FAST-NEXT: .cfi_offset f30, -16 386; FAST-NEXT: .cfi_offset f31, -8 387; FAST-NEXT: stfd f28, -32(r1) # 8-byte Folded Spill 388; FAST-NEXT: stfd f29, -24(r1) # 8-byte Folded Spill 389; FAST-NEXT: stfd f30, -16(r1) # 8-byte Folded Spill 390; FAST-NEXT: stfd f31, -8(r1) # 8-byte Folded Spill 391; FAST-NEXT: stdu r1, -64(r1) 392; FAST-NEXT: fmr f29, f1 393; FAST-NEXT: fmr f1, f4 394; FAST-NEXT: std r0, 80(r1) 395; FAST-NEXT: fmr f31, f3 396; FAST-NEXT: fmr f30, f2 397; FAST-NEXT: bl __gnu_f2h_ieee 398; FAST-NEXT: nop 399; FAST-NEXT: clrldi r3, r3, 48 400; FAST-NEXT: bl __gnu_h2f_ieee 401; FAST-NEXT: nop 402; FAST-NEXT: fmr f28, f1 403; FAST-NEXT: fmr f1, f31 404; FAST-NEXT: bl __gnu_f2h_ieee 405; FAST-NEXT: nop 406; FAST-NEXT: clrldi r3, r3, 48 407; FAST-NEXT: bl __gnu_h2f_ieee 408; FAST-NEXT: nop 409; FAST-NEXT: fmr f31, f1 410; FAST-NEXT: fmr f1, f30 411; FAST-NEXT: bl __gnu_f2h_ieee 412; FAST-NEXT: nop 413; FAST-NEXT: clrldi r3, r3, 48 414; FAST-NEXT: bl __gnu_h2f_ieee 415; FAST-NEXT: nop 416; FAST-NEXT: fmr f30, f1 417; FAST-NEXT: fmr f1, f29 418; FAST-NEXT: bl __gnu_f2h_ieee 419; FAST-NEXT: nop 420; FAST-NEXT: clrldi r3, r3, 48 421; FAST-NEXT: bl __gnu_h2f_ieee 422; FAST-NEXT: nop 423; FAST-NEXT: fctid f0, f30 424; FAST-NEXT: fctid f2, f31 425; FAST-NEXT: mffprd r3, f0 426; FAST-NEXT: fctid f1, f1 427; FAST-NEXT: mtfprd f0, r3 428; FAST-NEXT: mffprd r3, f2 429; FAST-NEXT: mtfprd f2, r3 430; FAST-NEXT: mffprd r3, f1 431; FAST-NEXT: mtfprd f1, r3 432; FAST-NEXT: xxmrghd v2, vs0, vs1 433; FAST-NEXT: fctid f0, f28 434; FAST-NEXT: mffprd r3, f0 435; FAST-NEXT: mtfprd f0, r3 436; FAST-NEXT: xxmrghd v3, vs0, vs2 437; FAST-NEXT: addi r1, r1, 64 438; FAST-NEXT: ld r0, 16(r1) 439; FAST-NEXT: lfd f31, -8(r1) # 8-byte Folded Reload 440; FAST-NEXT: lfd f30, -16(r1) # 8-byte Folded Reload 441; FAST-NEXT: mtlr r0 442; FAST-NEXT: lfd f29, -24(r1) # 8-byte Folded Reload 443; FAST-NEXT: lfd f28, -32(r1) # 8-byte Folded Reload 444; FAST-NEXT: blr 445 %a = call <4 x i64> @llvm.llrint.v4i64.v4f16(<4 x half> %x) 446 ret <4 x i64> %a 447} 448declare <4 x i64> @llvm.llrint.v4i64.v4f16(<4 x half>) 449 450define <8 x i64> @llrint_v8i64_v8f16(<8 x half> %x) { 451; BE-LABEL: llrint_v8i64_v8f16: 452; BE: # %bb.0: 453; BE-NEXT: mflr r0 454; BE-NEXT: stdu r1, -304(r1) 455; BE-NEXT: std r0, 320(r1) 456; BE-NEXT: .cfi_def_cfa_offset 304 457; BE-NEXT: .cfi_offset lr, 16 458; BE-NEXT: .cfi_offset r24, -120 459; BE-NEXT: .cfi_offset r25, -112 460; BE-NEXT: .cfi_offset r26, -104 461; BE-NEXT: .cfi_offset r27, -96 462; BE-NEXT: .cfi_offset r28, -88 463; BE-NEXT: .cfi_offset r29, -80 464; BE-NEXT: .cfi_offset r30, -72 465; BE-NEXT: .cfi_offset f25, -56 466; BE-NEXT: .cfi_offset f26, -48 467; BE-NEXT: .cfi_offset f27, -40 468; BE-NEXT: .cfi_offset f28, -32 469; BE-NEXT: .cfi_offset f29, -24 470; BE-NEXT: .cfi_offset f30, -16 471; BE-NEXT: .cfi_offset f31, -8 472; BE-NEXT: stfd f25, 248(r1) # 8-byte Folded Spill 473; BE-NEXT: fmr f25, f1 474; BE-NEXT: fmr f1, f2 475; BE-NEXT: std r24, 184(r1) # 8-byte Folded Spill 476; BE-NEXT: std r25, 192(r1) # 8-byte Folded Spill 477; BE-NEXT: std r26, 200(r1) # 8-byte Folded Spill 478; BE-NEXT: std r27, 208(r1) # 8-byte Folded Spill 479; BE-NEXT: std r28, 216(r1) # 8-byte Folded Spill 480; BE-NEXT: std r29, 224(r1) # 8-byte Folded Spill 481; BE-NEXT: std r30, 232(r1) # 8-byte Folded Spill 482; BE-NEXT: stfd f26, 256(r1) # 8-byte Folded Spill 483; BE-NEXT: stfd f27, 264(r1) # 8-byte Folded Spill 484; BE-NEXT: stfd f28, 272(r1) # 8-byte Folded Spill 485; BE-NEXT: stfd f29, 280(r1) # 8-byte Folded Spill 486; BE-NEXT: stfd f30, 288(r1) # 8-byte Folded Spill 487; BE-NEXT: stfd f31, 296(r1) # 8-byte Folded Spill 488; BE-NEXT: fmr f31, f8 489; BE-NEXT: fmr f30, f7 490; BE-NEXT: fmr f29, f6 491; BE-NEXT: fmr f28, f5 492; BE-NEXT: fmr f27, f4 493; BE-NEXT: fmr f26, f3 494; BE-NEXT: bl __gnu_f2h_ieee 495; BE-NEXT: nop 496; BE-NEXT: fmr f1, f25 497; BE-NEXT: mr r30, r3 498; BE-NEXT: bl __gnu_f2h_ieee 499; BE-NEXT: nop 500; BE-NEXT: fmr f1, f27 501; BE-NEXT: mr r29, r3 502; BE-NEXT: bl __gnu_f2h_ieee 503; BE-NEXT: nop 504; BE-NEXT: fmr f1, f26 505; BE-NEXT: mr r28, r3 506; BE-NEXT: bl __gnu_f2h_ieee 507; BE-NEXT: nop 508; BE-NEXT: fmr f1, f29 509; BE-NEXT: mr r27, r3 510; BE-NEXT: bl __gnu_f2h_ieee 511; BE-NEXT: nop 512; BE-NEXT: fmr f1, f28 513; BE-NEXT: mr r26, r3 514; BE-NEXT: bl __gnu_f2h_ieee 515; BE-NEXT: nop 516; BE-NEXT: fmr f1, f31 517; BE-NEXT: mr r25, r3 518; BE-NEXT: bl __gnu_f2h_ieee 519; BE-NEXT: nop 520; BE-NEXT: fmr f1, f30 521; BE-NEXT: mr r24, r3 522; BE-NEXT: bl __gnu_f2h_ieee 523; BE-NEXT: nop 524; BE-NEXT: clrldi r3, r3, 48 525; BE-NEXT: bl __gnu_h2f_ieee 526; BE-NEXT: nop 527; BE-NEXT: clrldi r3, r24, 48 528; BE-NEXT: fmr f31, f1 529; BE-NEXT: bl __gnu_h2f_ieee 530; BE-NEXT: nop 531; BE-NEXT: clrldi r3, r25, 48 532; BE-NEXT: fmr f30, f1 533; BE-NEXT: bl __gnu_h2f_ieee 534; BE-NEXT: nop 535; BE-NEXT: clrldi r3, r26, 48 536; BE-NEXT: fmr f29, f1 537; BE-NEXT: bl __gnu_h2f_ieee 538; BE-NEXT: nop 539; BE-NEXT: clrldi r3, r27, 48 540; BE-NEXT: fmr f28, f1 541; BE-NEXT: bl __gnu_h2f_ieee 542; BE-NEXT: nop 543; BE-NEXT: clrldi r3, r28, 48 544; BE-NEXT: fmr f27, f1 545; BE-NEXT: bl __gnu_h2f_ieee 546; BE-NEXT: nop 547; BE-NEXT: clrldi r3, r29, 48 548; BE-NEXT: fmr f26, f1 549; BE-NEXT: bl __gnu_h2f_ieee 550; BE-NEXT: nop 551; BE-NEXT: clrldi r3, r30, 48 552; BE-NEXT: fmr f25, f1 553; BE-NEXT: bl __gnu_h2f_ieee 554; BE-NEXT: nop 555; BE-NEXT: bl llrintf 556; BE-NEXT: nop 557; BE-NEXT: fmr f1, f25 558; BE-NEXT: std r3, 120(r1) 559; BE-NEXT: bl llrintf 560; BE-NEXT: nop 561; BE-NEXT: fmr f1, f26 562; BE-NEXT: std r3, 112(r1) 563; BE-NEXT: bl llrintf 564; BE-NEXT: nop 565; BE-NEXT: fmr f1, f27 566; BE-NEXT: std r3, 136(r1) 567; BE-NEXT: bl llrintf 568; BE-NEXT: nop 569; BE-NEXT: fmr f1, f28 570; BE-NEXT: std r3, 128(r1) 571; BE-NEXT: bl llrintf 572; BE-NEXT: nop 573; BE-NEXT: fmr f1, f29 574; BE-NEXT: std r3, 152(r1) 575; BE-NEXT: bl llrintf 576; BE-NEXT: nop 577; BE-NEXT: fmr f1, f30 578; BE-NEXT: std r3, 144(r1) 579; BE-NEXT: bl llrintf 580; BE-NEXT: nop 581; BE-NEXT: fmr f1, f31 582; BE-NEXT: std r3, 168(r1) 583; BE-NEXT: bl llrintf 584; BE-NEXT: nop 585; BE-NEXT: std r3, 160(r1) 586; BE-NEXT: addi r3, r1, 112 587; BE-NEXT: ld r30, 232(r1) # 8-byte Folded Reload 588; BE-NEXT: lfd f31, 296(r1) # 8-byte Folded Reload 589; BE-NEXT: lfd f30, 288(r1) # 8-byte Folded Reload 590; BE-NEXT: lfd f29, 280(r1) # 8-byte Folded Reload 591; BE-NEXT: lxvd2x v2, 0, r3 592; BE-NEXT: addi r3, r1, 128 593; BE-NEXT: lfd f28, 272(r1) # 8-byte Folded Reload 594; BE-NEXT: lfd f27, 264(r1) # 8-byte Folded Reload 595; BE-NEXT: lfd f26, 256(r1) # 8-byte Folded Reload 596; BE-NEXT: ld r29, 224(r1) # 8-byte Folded Reload 597; BE-NEXT: ld r28, 216(r1) # 8-byte Folded Reload 598; BE-NEXT: lxvd2x v3, 0, r3 599; BE-NEXT: addi r3, r1, 144 600; BE-NEXT: lfd f25, 248(r1) # 8-byte Folded Reload 601; BE-NEXT: ld r27, 208(r1) # 8-byte Folded Reload 602; BE-NEXT: ld r26, 200(r1) # 8-byte Folded Reload 603; BE-NEXT: ld r25, 192(r1) # 8-byte Folded Reload 604; BE-NEXT: ld r24, 184(r1) # 8-byte Folded Reload 605; BE-NEXT: lxvd2x v4, 0, r3 606; BE-NEXT: addi r3, r1, 160 607; BE-NEXT: lxvd2x v5, 0, r3 608; BE-NEXT: addi r1, r1, 304 609; BE-NEXT: ld r0, 16(r1) 610; BE-NEXT: mtlr r0 611; BE-NEXT: blr 612; 613; CHECK-LABEL: llrint_v8i64_v8f16: 614; CHECK: # %bb.0: 615; CHECK-NEXT: mflr r0 616; CHECK-NEXT: stdu r1, -240(r1) 617; CHECK-NEXT: std r0, 256(r1) 618; CHECK-NEXT: .cfi_def_cfa_offset 240 619; CHECK-NEXT: .cfi_offset lr, 16 620; CHECK-NEXT: .cfi_offset r24, -120 621; CHECK-NEXT: .cfi_offset r25, -112 622; CHECK-NEXT: .cfi_offset r26, -104 623; CHECK-NEXT: .cfi_offset r27, -96 624; CHECK-NEXT: .cfi_offset r28, -88 625; CHECK-NEXT: .cfi_offset r29, -80 626; CHECK-NEXT: .cfi_offset r30, -72 627; CHECK-NEXT: .cfi_offset f25, -56 628; CHECK-NEXT: .cfi_offset f26, -48 629; CHECK-NEXT: .cfi_offset f27, -40 630; CHECK-NEXT: .cfi_offset f28, -32 631; CHECK-NEXT: .cfi_offset f29, -24 632; CHECK-NEXT: .cfi_offset f30, -16 633; CHECK-NEXT: .cfi_offset f31, -8 634; CHECK-NEXT: .cfi_offset v28, -192 635; CHECK-NEXT: .cfi_offset v29, -176 636; CHECK-NEXT: .cfi_offset v30, -160 637; CHECK-NEXT: .cfi_offset v31, -144 638; CHECK-NEXT: li r3, 48 639; CHECK-NEXT: std r24, 120(r1) # 8-byte Folded Spill 640; CHECK-NEXT: std r25, 128(r1) # 8-byte Folded Spill 641; CHECK-NEXT: std r26, 136(r1) # 8-byte Folded Spill 642; CHECK-NEXT: std r27, 144(r1) # 8-byte Folded Spill 643; CHECK-NEXT: std r28, 152(r1) # 8-byte Folded Spill 644; CHECK-NEXT: std r29, 160(r1) # 8-byte Folded Spill 645; CHECK-NEXT: std r30, 168(r1) # 8-byte Folded Spill 646; CHECK-NEXT: stvx v28, r1, r3 # 16-byte Folded Spill 647; CHECK-NEXT: li r3, 64 648; CHECK-NEXT: stfd f25, 184(r1) # 8-byte Folded Spill 649; CHECK-NEXT: fmr f25, f2 650; CHECK-NEXT: stfd f26, 192(r1) # 8-byte Folded Spill 651; CHECK-NEXT: fmr f26, f3 652; CHECK-NEXT: stfd f27, 200(r1) # 8-byte Folded Spill 653; CHECK-NEXT: fmr f27, f4 654; CHECK-NEXT: stvx v29, r1, r3 # 16-byte Folded Spill 655; CHECK-NEXT: li r3, 80 656; CHECK-NEXT: stfd f28, 208(r1) # 8-byte Folded Spill 657; CHECK-NEXT: fmr f28, f5 658; CHECK-NEXT: stfd f29, 216(r1) # 8-byte Folded Spill 659; CHECK-NEXT: fmr f29, f6 660; CHECK-NEXT: stfd f30, 224(r1) # 8-byte Folded Spill 661; CHECK-NEXT: fmr f30, f7 662; CHECK-NEXT: stvx v30, r1, r3 # 16-byte Folded Spill 663; CHECK-NEXT: li r3, 96 664; CHECK-NEXT: stfd f31, 232(r1) # 8-byte Folded Spill 665; CHECK-NEXT: fmr f31, f8 666; CHECK-NEXT: stvx v31, r1, r3 # 16-byte Folded Spill 667; CHECK-NEXT: bl __gnu_f2h_ieee 668; CHECK-NEXT: nop 669; CHECK-NEXT: fmr f1, f25 670; CHECK-NEXT: mr r30, r3 671; CHECK-NEXT: bl __gnu_f2h_ieee 672; CHECK-NEXT: nop 673; CHECK-NEXT: fmr f1, f26 674; CHECK-NEXT: mr r29, r3 675; CHECK-NEXT: bl __gnu_f2h_ieee 676; CHECK-NEXT: nop 677; CHECK-NEXT: fmr f1, f27 678; CHECK-NEXT: mr r28, r3 679; CHECK-NEXT: bl __gnu_f2h_ieee 680; CHECK-NEXT: nop 681; CHECK-NEXT: fmr f1, f28 682; CHECK-NEXT: mr r27, r3 683; CHECK-NEXT: bl __gnu_f2h_ieee 684; CHECK-NEXT: nop 685; CHECK-NEXT: fmr f1, f29 686; CHECK-NEXT: mr r26, r3 687; CHECK-NEXT: bl __gnu_f2h_ieee 688; CHECK-NEXT: nop 689; CHECK-NEXT: fmr f1, f30 690; CHECK-NEXT: mr r25, r3 691; CHECK-NEXT: bl __gnu_f2h_ieee 692; CHECK-NEXT: nop 693; CHECK-NEXT: fmr f1, f31 694; CHECK-NEXT: mr r24, r3 695; CHECK-NEXT: bl __gnu_f2h_ieee 696; CHECK-NEXT: nop 697; CHECK-NEXT: clrldi r3, r3, 48 698; CHECK-NEXT: bl __gnu_h2f_ieee 699; CHECK-NEXT: nop 700; CHECK-NEXT: clrldi r3, r24, 48 701; CHECK-NEXT: fmr f31, f1 702; CHECK-NEXT: bl __gnu_h2f_ieee 703; CHECK-NEXT: nop 704; CHECK-NEXT: clrldi r3, r25, 48 705; CHECK-NEXT: fmr f30, f1 706; CHECK-NEXT: bl __gnu_h2f_ieee 707; CHECK-NEXT: nop 708; CHECK-NEXT: clrldi r3, r26, 48 709; CHECK-NEXT: fmr f29, f1 710; CHECK-NEXT: bl __gnu_h2f_ieee 711; CHECK-NEXT: nop 712; CHECK-NEXT: clrldi r3, r27, 48 713; CHECK-NEXT: fmr f28, f1 714; CHECK-NEXT: bl __gnu_h2f_ieee 715; CHECK-NEXT: nop 716; CHECK-NEXT: clrldi r3, r28, 48 717; CHECK-NEXT: fmr f27, f1 718; CHECK-NEXT: bl __gnu_h2f_ieee 719; CHECK-NEXT: nop 720; CHECK-NEXT: clrldi r3, r29, 48 721; CHECK-NEXT: fmr f26, f1 722; CHECK-NEXT: bl __gnu_h2f_ieee 723; CHECK-NEXT: nop 724; CHECK-NEXT: clrldi r3, r30, 48 725; CHECK-NEXT: fmr f25, f1 726; CHECK-NEXT: bl __gnu_h2f_ieee 727; CHECK-NEXT: nop 728; CHECK-NEXT: bl llrintf 729; CHECK-NEXT: nop 730; CHECK-NEXT: fmr f1, f25 731; CHECK-NEXT: mtvsrd v31, r3 732; CHECK-NEXT: bl llrintf 733; CHECK-NEXT: nop 734; CHECK-NEXT: fmr f1, f26 735; CHECK-NEXT: mtfprd f0, r3 736; CHECK-NEXT: xxmrghd v31, vs0, v31 737; CHECK-NEXT: bl llrintf 738; CHECK-NEXT: nop 739; CHECK-NEXT: fmr f1, f27 740; CHECK-NEXT: mtvsrd v30, r3 741; CHECK-NEXT: bl llrintf 742; CHECK-NEXT: nop 743; CHECK-NEXT: fmr f1, f28 744; CHECK-NEXT: mtfprd f0, r3 745; CHECK-NEXT: xxmrghd v30, vs0, v30 746; CHECK-NEXT: bl llrintf 747; CHECK-NEXT: nop 748; CHECK-NEXT: fmr f1, f29 749; CHECK-NEXT: mtvsrd v29, r3 750; CHECK-NEXT: bl llrintf 751; CHECK-NEXT: nop 752; CHECK-NEXT: fmr f1, f30 753; CHECK-NEXT: mtfprd f0, r3 754; CHECK-NEXT: xxmrghd v29, vs0, v29 755; CHECK-NEXT: bl llrintf 756; CHECK-NEXT: nop 757; CHECK-NEXT: fmr f1, f31 758; CHECK-NEXT: mtvsrd v28, r3 759; CHECK-NEXT: bl llrintf 760; CHECK-NEXT: nop 761; CHECK-NEXT: mtfprd f0, r3 762; CHECK-NEXT: li r3, 96 763; CHECK-NEXT: vmr v2, v31 764; CHECK-NEXT: lfd f31, 232(r1) # 8-byte Folded Reload 765; CHECK-NEXT: vmr v3, v30 766; CHECK-NEXT: vmr v4, v29 767; CHECK-NEXT: lfd f30, 224(r1) # 8-byte Folded Reload 768; CHECK-NEXT: lfd f29, 216(r1) # 8-byte Folded Reload 769; CHECK-NEXT: lvx v31, r1, r3 # 16-byte Folded Reload 770; CHECK-NEXT: li r3, 80 771; CHECK-NEXT: lfd f28, 208(r1) # 8-byte Folded Reload 772; CHECK-NEXT: lfd f27, 200(r1) # 8-byte Folded Reload 773; CHECK-NEXT: lfd f26, 192(r1) # 8-byte Folded Reload 774; CHECK-NEXT: lfd f25, 184(r1) # 8-byte Folded Reload 775; CHECK-NEXT: ld r30, 168(r1) # 8-byte Folded Reload 776; CHECK-NEXT: ld r29, 160(r1) # 8-byte Folded Reload 777; CHECK-NEXT: lvx v30, r1, r3 # 16-byte Folded Reload 778; CHECK-NEXT: li r3, 64 779; CHECK-NEXT: ld r28, 152(r1) # 8-byte Folded Reload 780; CHECK-NEXT: ld r27, 144(r1) # 8-byte Folded Reload 781; CHECK-NEXT: xxmrghd v5, vs0, v28 782; CHECK-NEXT: ld r26, 136(r1) # 8-byte Folded Reload 783; CHECK-NEXT: ld r25, 128(r1) # 8-byte Folded Reload 784; CHECK-NEXT: ld r24, 120(r1) # 8-byte Folded Reload 785; CHECK-NEXT: lvx v29, r1, r3 # 16-byte Folded Reload 786; CHECK-NEXT: li r3, 48 787; CHECK-NEXT: lvx v28, r1, r3 # 16-byte Folded Reload 788; CHECK-NEXT: addi r1, r1, 240 789; CHECK-NEXT: ld r0, 16(r1) 790; CHECK-NEXT: mtlr r0 791; CHECK-NEXT: blr 792; 793; FAST-LABEL: llrint_v8i64_v8f16: 794; FAST: # %bb.0: 795; FAST-NEXT: mflr r0 796; FAST-NEXT: .cfi_def_cfa_offset 96 797; FAST-NEXT: .cfi_offset lr, 16 798; FAST-NEXT: .cfi_offset f24, -64 799; FAST-NEXT: .cfi_offset f25, -56 800; FAST-NEXT: .cfi_offset f26, -48 801; FAST-NEXT: .cfi_offset f27, -40 802; FAST-NEXT: .cfi_offset f28, -32 803; FAST-NEXT: .cfi_offset f29, -24 804; FAST-NEXT: .cfi_offset f30, -16 805; FAST-NEXT: .cfi_offset f31, -8 806; FAST-NEXT: stfd f24, -64(r1) # 8-byte Folded Spill 807; FAST-NEXT: stfd f25, -56(r1) # 8-byte Folded Spill 808; FAST-NEXT: stfd f26, -48(r1) # 8-byte Folded Spill 809; FAST-NEXT: stfd f27, -40(r1) # 8-byte Folded Spill 810; FAST-NEXT: stfd f28, -32(r1) # 8-byte Folded Spill 811; FAST-NEXT: stfd f29, -24(r1) # 8-byte Folded Spill 812; FAST-NEXT: stfd f30, -16(r1) # 8-byte Folded Spill 813; FAST-NEXT: stfd f31, -8(r1) # 8-byte Folded Spill 814; FAST-NEXT: stdu r1, -96(r1) 815; FAST-NEXT: fmr f24, f1 816; FAST-NEXT: fmr f1, f8 817; FAST-NEXT: std r0, 112(r1) 818; FAST-NEXT: fmr f30, f7 819; FAST-NEXT: fmr f29, f6 820; FAST-NEXT: fmr f28, f5 821; FAST-NEXT: fmr f27, f4 822; FAST-NEXT: fmr f26, f3 823; FAST-NEXT: fmr f25, f2 824; FAST-NEXT: bl __gnu_f2h_ieee 825; FAST-NEXT: nop 826; FAST-NEXT: clrldi r3, r3, 48 827; FAST-NEXT: bl __gnu_h2f_ieee 828; FAST-NEXT: nop 829; FAST-NEXT: fmr f31, f1 830; FAST-NEXT: fmr f1, f30 831; FAST-NEXT: bl __gnu_f2h_ieee 832; FAST-NEXT: nop 833; FAST-NEXT: clrldi r3, r3, 48 834; FAST-NEXT: bl __gnu_h2f_ieee 835; FAST-NEXT: nop 836; FAST-NEXT: fmr f30, f1 837; FAST-NEXT: fmr f1, f29 838; FAST-NEXT: bl __gnu_f2h_ieee 839; FAST-NEXT: nop 840; FAST-NEXT: clrldi r3, r3, 48 841; FAST-NEXT: bl __gnu_h2f_ieee 842; FAST-NEXT: nop 843; FAST-NEXT: fmr f29, f1 844; FAST-NEXT: fmr f1, f28 845; FAST-NEXT: bl __gnu_f2h_ieee 846; FAST-NEXT: nop 847; FAST-NEXT: clrldi r3, r3, 48 848; FAST-NEXT: bl __gnu_h2f_ieee 849; FAST-NEXT: nop 850; FAST-NEXT: fmr f28, f1 851; FAST-NEXT: fmr f1, f27 852; FAST-NEXT: bl __gnu_f2h_ieee 853; FAST-NEXT: nop 854; FAST-NEXT: clrldi r3, r3, 48 855; FAST-NEXT: bl __gnu_h2f_ieee 856; FAST-NEXT: nop 857; FAST-NEXT: fmr f27, f1 858; FAST-NEXT: fmr f1, f26 859; FAST-NEXT: bl __gnu_f2h_ieee 860; FAST-NEXT: nop 861; FAST-NEXT: clrldi r3, r3, 48 862; FAST-NEXT: bl __gnu_h2f_ieee 863; FAST-NEXT: nop 864; FAST-NEXT: fmr f26, f1 865; FAST-NEXT: fmr f1, f25 866; FAST-NEXT: bl __gnu_f2h_ieee 867; FAST-NEXT: nop 868; FAST-NEXT: clrldi r3, r3, 48 869; FAST-NEXT: bl __gnu_h2f_ieee 870; FAST-NEXT: nop 871; FAST-NEXT: fmr f25, f1 872; FAST-NEXT: fmr f1, f24 873; FAST-NEXT: bl __gnu_f2h_ieee 874; FAST-NEXT: nop 875; FAST-NEXT: clrldi r3, r3, 48 876; FAST-NEXT: bl __gnu_h2f_ieee 877; FAST-NEXT: nop 878; FAST-NEXT: fctid f0, f25 879; FAST-NEXT: fctid f2, f26 880; FAST-NEXT: mffprd r3, f0 881; FAST-NEXT: fctid f3, f27 882; FAST-NEXT: fctid f4, f28 883; FAST-NEXT: fctid f5, f29 884; FAST-NEXT: fctid f6, f30 885; FAST-NEXT: fctid f1, f1 886; FAST-NEXT: mtfprd f0, r3 887; FAST-NEXT: mffprd r3, f2 888; FAST-NEXT: mtfprd f2, r3 889; FAST-NEXT: mffprd r3, f3 890; FAST-NEXT: mtfprd f3, r3 891; FAST-NEXT: mffprd r3, f4 892; FAST-NEXT: mtfprd f4, r3 893; FAST-NEXT: mffprd r3, f5 894; FAST-NEXT: mtfprd f5, r3 895; FAST-NEXT: mffprd r3, f6 896; FAST-NEXT: mtfprd f6, r3 897; FAST-NEXT: mffprd r3, f1 898; FAST-NEXT: mtfprd f1, r3 899; FAST-NEXT: xxmrghd v3, vs3, vs2 900; FAST-NEXT: xxmrghd v4, vs5, vs4 901; FAST-NEXT: xxmrghd v2, vs0, vs1 902; FAST-NEXT: fctid f0, f31 903; FAST-NEXT: mffprd r3, f0 904; FAST-NEXT: mtfprd f0, r3 905; FAST-NEXT: xxmrghd v5, vs0, vs6 906; FAST-NEXT: addi r1, r1, 96 907; FAST-NEXT: ld r0, 16(r1) 908; FAST-NEXT: lfd f31, -8(r1) # 8-byte Folded Reload 909; FAST-NEXT: lfd f30, -16(r1) # 8-byte Folded Reload 910; FAST-NEXT: mtlr r0 911; FAST-NEXT: lfd f29, -24(r1) # 8-byte Folded Reload 912; FAST-NEXT: lfd f28, -32(r1) # 8-byte Folded Reload 913; FAST-NEXT: lfd f27, -40(r1) # 8-byte Folded Reload 914; FAST-NEXT: lfd f26, -48(r1) # 8-byte Folded Reload 915; FAST-NEXT: lfd f25, -56(r1) # 8-byte Folded Reload 916; FAST-NEXT: lfd f24, -64(r1) # 8-byte Folded Reload 917; FAST-NEXT: blr 918 %a = call <8 x i64> @llvm.llrint.v8i64.v8f16(<8 x half> %x) 919 ret <8 x i64> %a 920} 921declare <8 x i64> @llvm.llrint.v8i64.v8f16(<8 x half>) 922 923define <16 x i64> @llrint_v16i64_v16f16(<16 x half> %x) { 924; BE-LABEL: llrint_v16i64_v16f16: 925; BE: # %bb.0: 926; BE-NEXT: mflr r0 927; BE-NEXT: stdu r1, -496(r1) 928; BE-NEXT: std r0, 512(r1) 929; BE-NEXT: .cfi_def_cfa_offset 496 930; BE-NEXT: .cfi_offset lr, 16 931; BE-NEXT: .cfi_offset r16, -248 932; BE-NEXT: .cfi_offset r17, -240 933; BE-NEXT: .cfi_offset r18, -232 934; BE-NEXT: .cfi_offset r19, -224 935; BE-NEXT: .cfi_offset r20, -216 936; BE-NEXT: .cfi_offset r21, -208 937; BE-NEXT: .cfi_offset r22, -200 938; BE-NEXT: .cfi_offset r23, -192 939; BE-NEXT: .cfi_offset r24, -184 940; BE-NEXT: .cfi_offset r25, -176 941; BE-NEXT: .cfi_offset r26, -168 942; BE-NEXT: .cfi_offset r27, -160 943; BE-NEXT: .cfi_offset r28, -152 944; BE-NEXT: .cfi_offset r29, -144 945; BE-NEXT: .cfi_offset r30, -136 946; BE-NEXT: .cfi_offset f17, -120 947; BE-NEXT: .cfi_offset f18, -112 948; BE-NEXT: .cfi_offset f19, -104 949; BE-NEXT: .cfi_offset f20, -96 950; BE-NEXT: .cfi_offset f21, -88 951; BE-NEXT: .cfi_offset f22, -80 952; BE-NEXT: .cfi_offset f23, -72 953; BE-NEXT: .cfi_offset f24, -64 954; BE-NEXT: .cfi_offset f25, -56 955; BE-NEXT: .cfi_offset f26, -48 956; BE-NEXT: .cfi_offset f27, -40 957; BE-NEXT: .cfi_offset f28, -32 958; BE-NEXT: .cfi_offset f29, -24 959; BE-NEXT: .cfi_offset f30, -16 960; BE-NEXT: .cfi_offset f31, -8 961; BE-NEXT: stfd f20, 400(r1) # 8-byte Folded Spill 962; BE-NEXT: fmr f20, f1 963; BE-NEXT: fmr f1, f2 964; BE-NEXT: std r16, 248(r1) # 8-byte Folded Spill 965; BE-NEXT: std r17, 256(r1) # 8-byte Folded Spill 966; BE-NEXT: std r18, 264(r1) # 8-byte Folded Spill 967; BE-NEXT: std r19, 272(r1) # 8-byte Folded Spill 968; BE-NEXT: std r20, 280(r1) # 8-byte Folded Spill 969; BE-NEXT: std r21, 288(r1) # 8-byte Folded Spill 970; BE-NEXT: std r22, 296(r1) # 8-byte Folded Spill 971; BE-NEXT: std r23, 304(r1) # 8-byte Folded Spill 972; BE-NEXT: std r24, 312(r1) # 8-byte Folded Spill 973; BE-NEXT: std r25, 320(r1) # 8-byte Folded Spill 974; BE-NEXT: std r26, 328(r1) # 8-byte Folded Spill 975; BE-NEXT: std r27, 336(r1) # 8-byte Folded Spill 976; BE-NEXT: std r28, 344(r1) # 8-byte Folded Spill 977; BE-NEXT: std r29, 352(r1) # 8-byte Folded Spill 978; BE-NEXT: std r30, 360(r1) # 8-byte Folded Spill 979; BE-NEXT: stfd f17, 376(r1) # 8-byte Folded Spill 980; BE-NEXT: stfd f18, 384(r1) # 8-byte Folded Spill 981; BE-NEXT: stfd f19, 392(r1) # 8-byte Folded Spill 982; BE-NEXT: stfd f21, 408(r1) # 8-byte Folded Spill 983; BE-NEXT: stfd f22, 416(r1) # 8-byte Folded Spill 984; BE-NEXT: stfd f23, 424(r1) # 8-byte Folded Spill 985; BE-NEXT: stfd f24, 432(r1) # 8-byte Folded Spill 986; BE-NEXT: stfd f25, 440(r1) # 8-byte Folded Spill 987; BE-NEXT: stfd f26, 448(r1) # 8-byte Folded Spill 988; BE-NEXT: stfd f27, 456(r1) # 8-byte Folded Spill 989; BE-NEXT: stfd f28, 464(r1) # 8-byte Folded Spill 990; BE-NEXT: stfd f29, 472(r1) # 8-byte Folded Spill 991; BE-NEXT: stfd f30, 480(r1) # 8-byte Folded Spill 992; BE-NEXT: stfd f31, 488(r1) # 8-byte Folded Spill 993; BE-NEXT: fmr f31, f13 994; BE-NEXT: fmr f29, f12 995; BE-NEXT: fmr f30, f11 996; BE-NEXT: fmr f28, f10 997; BE-NEXT: fmr f27, f9 998; BE-NEXT: fmr f26, f8 999; BE-NEXT: fmr f25, f7 1000; BE-NEXT: fmr f24, f6 1001; BE-NEXT: fmr f23, f5 1002; BE-NEXT: fmr f22, f4 1003; BE-NEXT: fmr f21, f3 1004; BE-NEXT: bl __gnu_f2h_ieee 1005; BE-NEXT: nop 1006; BE-NEXT: fmr f1, f20 1007; BE-NEXT: mr r30, r3 1008; BE-NEXT: bl __gnu_f2h_ieee 1009; BE-NEXT: nop 1010; BE-NEXT: fmr f1, f22 1011; BE-NEXT: mr r29, r3 1012; BE-NEXT: bl __gnu_f2h_ieee 1013; BE-NEXT: nop 1014; BE-NEXT: fmr f1, f21 1015; BE-NEXT: mr r28, r3 1016; BE-NEXT: bl __gnu_f2h_ieee 1017; BE-NEXT: nop 1018; BE-NEXT: fmr f1, f24 1019; BE-NEXT: mr r27, r3 1020; BE-NEXT: bl __gnu_f2h_ieee 1021; BE-NEXT: nop 1022; BE-NEXT: fmr f1, f23 1023; BE-NEXT: mr r26, r3 1024; BE-NEXT: bl __gnu_f2h_ieee 1025; BE-NEXT: nop 1026; BE-NEXT: fmr f1, f26 1027; BE-NEXT: mr r25, r3 1028; BE-NEXT: bl __gnu_f2h_ieee 1029; BE-NEXT: nop 1030; BE-NEXT: fmr f1, f25 1031; BE-NEXT: mr r24, r3 1032; BE-NEXT: bl __gnu_f2h_ieee 1033; BE-NEXT: nop 1034; BE-NEXT: fmr f1, f28 1035; BE-NEXT: mr r23, r3 1036; BE-NEXT: bl __gnu_f2h_ieee 1037; BE-NEXT: nop 1038; BE-NEXT: fmr f1, f27 1039; BE-NEXT: mr r22, r3 1040; BE-NEXT: bl __gnu_f2h_ieee 1041; BE-NEXT: nop 1042; BE-NEXT: fmr f1, f29 1043; BE-NEXT: mr r21, r3 1044; BE-NEXT: bl __gnu_f2h_ieee 1045; BE-NEXT: nop 1046; BE-NEXT: fmr f1, f30 1047; BE-NEXT: mr r20, r3 1048; BE-NEXT: bl __gnu_f2h_ieee 1049; BE-NEXT: nop 1050; BE-NEXT: lfs f1, 652(r1) 1051; BE-NEXT: mr r19, r3 1052; BE-NEXT: bl __gnu_f2h_ieee 1053; BE-NEXT: nop 1054; BE-NEXT: fmr f1, f31 1055; BE-NEXT: mr r18, r3 1056; BE-NEXT: bl __gnu_f2h_ieee 1057; BE-NEXT: nop 1058; BE-NEXT: lfs f1, 668(r1) 1059; BE-NEXT: mr r17, r3 1060; BE-NEXT: bl __gnu_f2h_ieee 1061; BE-NEXT: nop 1062; BE-NEXT: lfs f1, 660(r1) 1063; BE-NEXT: mr r16, r3 1064; BE-NEXT: bl __gnu_f2h_ieee 1065; BE-NEXT: nop 1066; BE-NEXT: clrldi r3, r3, 48 1067; BE-NEXT: bl __gnu_h2f_ieee 1068; BE-NEXT: nop 1069; BE-NEXT: clrldi r3, r16, 48 1070; BE-NEXT: fmr f31, f1 1071; BE-NEXT: bl __gnu_h2f_ieee 1072; BE-NEXT: nop 1073; BE-NEXT: clrldi r3, r17, 48 1074; BE-NEXT: fmr f30, f1 1075; BE-NEXT: bl __gnu_h2f_ieee 1076; BE-NEXT: nop 1077; BE-NEXT: clrldi r3, r18, 48 1078; BE-NEXT: fmr f29, f1 1079; BE-NEXT: bl __gnu_h2f_ieee 1080; BE-NEXT: nop 1081; BE-NEXT: clrldi r3, r19, 48 1082; BE-NEXT: fmr f28, f1 1083; BE-NEXT: bl __gnu_h2f_ieee 1084; BE-NEXT: nop 1085; BE-NEXT: clrldi r3, r20, 48 1086; BE-NEXT: fmr f27, f1 1087; BE-NEXT: bl __gnu_h2f_ieee 1088; BE-NEXT: nop 1089; BE-NEXT: clrldi r3, r21, 48 1090; BE-NEXT: fmr f26, f1 1091; BE-NEXT: bl __gnu_h2f_ieee 1092; BE-NEXT: nop 1093; BE-NEXT: clrldi r3, r22, 48 1094; BE-NEXT: fmr f25, f1 1095; BE-NEXT: bl __gnu_h2f_ieee 1096; BE-NEXT: nop 1097; BE-NEXT: clrldi r3, r23, 48 1098; BE-NEXT: fmr f24, f1 1099; BE-NEXT: bl __gnu_h2f_ieee 1100; BE-NEXT: nop 1101; BE-NEXT: clrldi r3, r24, 48 1102; BE-NEXT: fmr f23, f1 1103; BE-NEXT: bl __gnu_h2f_ieee 1104; BE-NEXT: nop 1105; BE-NEXT: clrldi r3, r25, 48 1106; BE-NEXT: fmr f22, f1 1107; BE-NEXT: bl __gnu_h2f_ieee 1108; BE-NEXT: nop 1109; BE-NEXT: clrldi r3, r26, 48 1110; BE-NEXT: fmr f21, f1 1111; BE-NEXT: bl __gnu_h2f_ieee 1112; BE-NEXT: nop 1113; BE-NEXT: clrldi r3, r27, 48 1114; BE-NEXT: fmr f20, f1 1115; BE-NEXT: bl __gnu_h2f_ieee 1116; BE-NEXT: nop 1117; BE-NEXT: clrldi r3, r28, 48 1118; BE-NEXT: fmr f19, f1 1119; BE-NEXT: bl __gnu_h2f_ieee 1120; BE-NEXT: nop 1121; BE-NEXT: clrldi r3, r29, 48 1122; BE-NEXT: fmr f18, f1 1123; BE-NEXT: bl __gnu_h2f_ieee 1124; BE-NEXT: nop 1125; BE-NEXT: clrldi r3, r30, 48 1126; BE-NEXT: fmr f17, f1 1127; BE-NEXT: bl __gnu_h2f_ieee 1128; BE-NEXT: nop 1129; BE-NEXT: bl llrintf 1130; BE-NEXT: nop 1131; BE-NEXT: fmr f1, f17 1132; BE-NEXT: std r3, 120(r1) 1133; BE-NEXT: bl llrintf 1134; BE-NEXT: nop 1135; BE-NEXT: fmr f1, f18 1136; BE-NEXT: std r3, 112(r1) 1137; BE-NEXT: bl llrintf 1138; BE-NEXT: nop 1139; BE-NEXT: fmr f1, f19 1140; BE-NEXT: std r3, 136(r1) 1141; BE-NEXT: bl llrintf 1142; BE-NEXT: nop 1143; BE-NEXT: fmr f1, f20 1144; BE-NEXT: std r3, 128(r1) 1145; BE-NEXT: bl llrintf 1146; BE-NEXT: nop 1147; BE-NEXT: fmr f1, f21 1148; BE-NEXT: std r3, 152(r1) 1149; BE-NEXT: bl llrintf 1150; BE-NEXT: nop 1151; BE-NEXT: fmr f1, f22 1152; BE-NEXT: std r3, 144(r1) 1153; BE-NEXT: bl llrintf 1154; BE-NEXT: nop 1155; BE-NEXT: fmr f1, f23 1156; BE-NEXT: std r3, 168(r1) 1157; BE-NEXT: bl llrintf 1158; BE-NEXT: nop 1159; BE-NEXT: fmr f1, f24 1160; BE-NEXT: std r3, 160(r1) 1161; BE-NEXT: bl llrintf 1162; BE-NEXT: nop 1163; BE-NEXT: fmr f1, f25 1164; BE-NEXT: std r3, 184(r1) 1165; BE-NEXT: bl llrintf 1166; BE-NEXT: nop 1167; BE-NEXT: fmr f1, f26 1168; BE-NEXT: std r3, 176(r1) 1169; BE-NEXT: bl llrintf 1170; BE-NEXT: nop 1171; BE-NEXT: fmr f1, f27 1172; BE-NEXT: std r3, 200(r1) 1173; BE-NEXT: bl llrintf 1174; BE-NEXT: nop 1175; BE-NEXT: fmr f1, f28 1176; BE-NEXT: std r3, 192(r1) 1177; BE-NEXT: bl llrintf 1178; BE-NEXT: nop 1179; BE-NEXT: fmr f1, f29 1180; BE-NEXT: std r3, 216(r1) 1181; BE-NEXT: bl llrintf 1182; BE-NEXT: nop 1183; BE-NEXT: fmr f1, f30 1184; BE-NEXT: std r3, 208(r1) 1185; BE-NEXT: bl llrintf 1186; BE-NEXT: nop 1187; BE-NEXT: fmr f1, f31 1188; BE-NEXT: std r3, 232(r1) 1189; BE-NEXT: bl llrintf 1190; BE-NEXT: nop 1191; BE-NEXT: std r3, 224(r1) 1192; BE-NEXT: addi r3, r1, 112 1193; BE-NEXT: ld r30, 360(r1) # 8-byte Folded Reload 1194; BE-NEXT: lfd f31, 488(r1) # 8-byte Folded Reload 1195; BE-NEXT: lfd f30, 480(r1) # 8-byte Folded Reload 1196; BE-NEXT: lfd f29, 472(r1) # 8-byte Folded Reload 1197; BE-NEXT: lxvd2x v2, 0, r3 1198; BE-NEXT: addi r3, r1, 128 1199; BE-NEXT: lfd f28, 464(r1) # 8-byte Folded Reload 1200; BE-NEXT: lfd f27, 456(r1) # 8-byte Folded Reload 1201; BE-NEXT: lfd f26, 448(r1) # 8-byte Folded Reload 1202; BE-NEXT: ld r29, 352(r1) # 8-byte Folded Reload 1203; BE-NEXT: ld r28, 344(r1) # 8-byte Folded Reload 1204; BE-NEXT: lxvd2x v3, 0, r3 1205; BE-NEXT: addi r3, r1, 144 1206; BE-NEXT: lfd f25, 440(r1) # 8-byte Folded Reload 1207; BE-NEXT: lfd f24, 432(r1) # 8-byte Folded Reload 1208; BE-NEXT: lfd f23, 424(r1) # 8-byte Folded Reload 1209; BE-NEXT: ld r27, 336(r1) # 8-byte Folded Reload 1210; BE-NEXT: ld r26, 328(r1) # 8-byte Folded Reload 1211; BE-NEXT: lxvd2x v4, 0, r3 1212; BE-NEXT: addi r3, r1, 160 1213; BE-NEXT: lfd f22, 416(r1) # 8-byte Folded Reload 1214; BE-NEXT: lfd f21, 408(r1) # 8-byte Folded Reload 1215; BE-NEXT: lfd f20, 400(r1) # 8-byte Folded Reload 1216; BE-NEXT: ld r25, 320(r1) # 8-byte Folded Reload 1217; BE-NEXT: ld r24, 312(r1) # 8-byte Folded Reload 1218; BE-NEXT: lxvd2x v5, 0, r3 1219; BE-NEXT: addi r3, r1, 176 1220; BE-NEXT: lfd f19, 392(r1) # 8-byte Folded Reload 1221; BE-NEXT: lfd f18, 384(r1) # 8-byte Folded Reload 1222; BE-NEXT: lfd f17, 376(r1) # 8-byte Folded Reload 1223; BE-NEXT: ld r23, 304(r1) # 8-byte Folded Reload 1224; BE-NEXT: ld r22, 296(r1) # 8-byte Folded Reload 1225; BE-NEXT: lxvd2x v6, 0, r3 1226; BE-NEXT: addi r3, r1, 192 1227; BE-NEXT: ld r21, 288(r1) # 8-byte Folded Reload 1228; BE-NEXT: ld r20, 280(r1) # 8-byte Folded Reload 1229; BE-NEXT: ld r19, 272(r1) # 8-byte Folded Reload 1230; BE-NEXT: ld r18, 264(r1) # 8-byte Folded Reload 1231; BE-NEXT: ld r17, 256(r1) # 8-byte Folded Reload 1232; BE-NEXT: ld r16, 248(r1) # 8-byte Folded Reload 1233; BE-NEXT: lxvd2x v7, 0, r3 1234; BE-NEXT: addi r3, r1, 208 1235; BE-NEXT: lxvd2x v8, 0, r3 1236; BE-NEXT: addi r3, r1, 224 1237; BE-NEXT: lxvd2x v9, 0, r3 1238; BE-NEXT: addi r1, r1, 496 1239; BE-NEXT: ld r0, 16(r1) 1240; BE-NEXT: mtlr r0 1241; BE-NEXT: blr 1242; 1243; CHECK-LABEL: llrint_v16i64_v16f16: 1244; CHECK: # %bb.0: 1245; CHECK-NEXT: mflr r0 1246; CHECK-NEXT: stdu r1, -432(r1) 1247; CHECK-NEXT: std r0, 448(r1) 1248; CHECK-NEXT: .cfi_def_cfa_offset 432 1249; CHECK-NEXT: .cfi_offset lr, 16 1250; CHECK-NEXT: .cfi_offset r16, -248 1251; CHECK-NEXT: .cfi_offset r17, -240 1252; CHECK-NEXT: .cfi_offset r18, -232 1253; CHECK-NEXT: .cfi_offset r19, -224 1254; CHECK-NEXT: .cfi_offset r20, -216 1255; CHECK-NEXT: .cfi_offset r21, -208 1256; CHECK-NEXT: .cfi_offset r22, -200 1257; CHECK-NEXT: .cfi_offset r23, -192 1258; CHECK-NEXT: .cfi_offset r24, -184 1259; CHECK-NEXT: .cfi_offset r25, -176 1260; CHECK-NEXT: .cfi_offset r26, -168 1261; CHECK-NEXT: .cfi_offset r27, -160 1262; CHECK-NEXT: .cfi_offset r28, -152 1263; CHECK-NEXT: .cfi_offset r29, -144 1264; CHECK-NEXT: .cfi_offset r30, -136 1265; CHECK-NEXT: .cfi_offset f17, -120 1266; CHECK-NEXT: .cfi_offset f18, -112 1267; CHECK-NEXT: .cfi_offset f19, -104 1268; CHECK-NEXT: .cfi_offset f20, -96 1269; CHECK-NEXT: .cfi_offset f21, -88 1270; CHECK-NEXT: .cfi_offset f22, -80 1271; CHECK-NEXT: .cfi_offset f23, -72 1272; CHECK-NEXT: .cfi_offset f24, -64 1273; CHECK-NEXT: .cfi_offset f25, -56 1274; CHECK-NEXT: .cfi_offset f26, -48 1275; CHECK-NEXT: .cfi_offset f27, -40 1276; CHECK-NEXT: .cfi_offset f28, -32 1277; CHECK-NEXT: .cfi_offset f29, -24 1278; CHECK-NEXT: .cfi_offset f30, -16 1279; CHECK-NEXT: .cfi_offset f31, -8 1280; CHECK-NEXT: .cfi_offset v24, -384 1281; CHECK-NEXT: .cfi_offset v25, -368 1282; CHECK-NEXT: .cfi_offset v26, -352 1283; CHECK-NEXT: .cfi_offset v27, -336 1284; CHECK-NEXT: .cfi_offset v28, -320 1285; CHECK-NEXT: .cfi_offset v29, -304 1286; CHECK-NEXT: .cfi_offset v30, -288 1287; CHECK-NEXT: .cfi_offset v31, -272 1288; CHECK-NEXT: li r3, 48 1289; CHECK-NEXT: std r16, 184(r1) # 8-byte Folded Spill 1290; CHECK-NEXT: std r17, 192(r1) # 8-byte Folded Spill 1291; CHECK-NEXT: std r18, 200(r1) # 8-byte Folded Spill 1292; CHECK-NEXT: std r19, 208(r1) # 8-byte Folded Spill 1293; CHECK-NEXT: std r20, 216(r1) # 8-byte Folded Spill 1294; CHECK-NEXT: std r21, 224(r1) # 8-byte Folded Spill 1295; CHECK-NEXT: std r22, 232(r1) # 8-byte Folded Spill 1296; CHECK-NEXT: stvx v24, r1, r3 # 16-byte Folded Spill 1297; CHECK-NEXT: li r3, 64 1298; CHECK-NEXT: std r23, 240(r1) # 8-byte Folded Spill 1299; CHECK-NEXT: std r24, 248(r1) # 8-byte Folded Spill 1300; CHECK-NEXT: std r25, 256(r1) # 8-byte Folded Spill 1301; CHECK-NEXT: std r26, 264(r1) # 8-byte Folded Spill 1302; CHECK-NEXT: std r27, 272(r1) # 8-byte Folded Spill 1303; CHECK-NEXT: std r28, 280(r1) # 8-byte Folded Spill 1304; CHECK-NEXT: stvx v25, r1, r3 # 16-byte Folded Spill 1305; CHECK-NEXT: li r3, 80 1306; CHECK-NEXT: std r29, 288(r1) # 8-byte Folded Spill 1307; CHECK-NEXT: std r30, 296(r1) # 8-byte Folded Spill 1308; CHECK-NEXT: stfd f17, 312(r1) # 8-byte Folded Spill 1309; CHECK-NEXT: stfd f18, 320(r1) # 8-byte Folded Spill 1310; CHECK-NEXT: stfd f19, 328(r1) # 8-byte Folded Spill 1311; CHECK-NEXT: stfd f20, 336(r1) # 8-byte Folded Spill 1312; CHECK-NEXT: fmr f20, f2 1313; CHECK-NEXT: stvx v26, r1, r3 # 16-byte Folded Spill 1314; CHECK-NEXT: li r3, 96 1315; CHECK-NEXT: stfd f21, 344(r1) # 8-byte Folded Spill 1316; CHECK-NEXT: fmr f21, f3 1317; CHECK-NEXT: stfd f22, 352(r1) # 8-byte Folded Spill 1318; CHECK-NEXT: fmr f22, f4 1319; CHECK-NEXT: stfd f23, 360(r1) # 8-byte Folded Spill 1320; CHECK-NEXT: fmr f23, f5 1321; CHECK-NEXT: stvx v27, r1, r3 # 16-byte Folded Spill 1322; CHECK-NEXT: li r3, 112 1323; CHECK-NEXT: stfd f24, 368(r1) # 8-byte Folded Spill 1324; CHECK-NEXT: fmr f24, f6 1325; CHECK-NEXT: stfd f25, 376(r1) # 8-byte Folded Spill 1326; CHECK-NEXT: fmr f25, f7 1327; CHECK-NEXT: stfd f26, 384(r1) # 8-byte Folded Spill 1328; CHECK-NEXT: fmr f26, f8 1329; CHECK-NEXT: stvx v28, r1, r3 # 16-byte Folded Spill 1330; CHECK-NEXT: li r3, 128 1331; CHECK-NEXT: stfd f27, 392(r1) # 8-byte Folded Spill 1332; CHECK-NEXT: fmr f27, f9 1333; CHECK-NEXT: stfd f28, 400(r1) # 8-byte Folded Spill 1334; CHECK-NEXT: fmr f28, f10 1335; CHECK-NEXT: stfd f29, 408(r1) # 8-byte Folded Spill 1336; CHECK-NEXT: fmr f29, f11 1337; CHECK-NEXT: stvx v29, r1, r3 # 16-byte Folded Spill 1338; CHECK-NEXT: li r3, 144 1339; CHECK-NEXT: stfd f30, 416(r1) # 8-byte Folded Spill 1340; CHECK-NEXT: fmr f30, f12 1341; CHECK-NEXT: stfd f31, 424(r1) # 8-byte Folded Spill 1342; CHECK-NEXT: fmr f31, f13 1343; CHECK-NEXT: stvx v30, r1, r3 # 16-byte Folded Spill 1344; CHECK-NEXT: li r3, 160 1345; CHECK-NEXT: stvx v31, r1, r3 # 16-byte Folded Spill 1346; CHECK-NEXT: bl __gnu_f2h_ieee 1347; CHECK-NEXT: nop 1348; CHECK-NEXT: fmr f1, f20 1349; CHECK-NEXT: mr r30, r3 1350; CHECK-NEXT: bl __gnu_f2h_ieee 1351; CHECK-NEXT: nop 1352; CHECK-NEXT: fmr f1, f21 1353; CHECK-NEXT: mr r29, r3 1354; CHECK-NEXT: bl __gnu_f2h_ieee 1355; CHECK-NEXT: nop 1356; CHECK-NEXT: fmr f1, f22 1357; CHECK-NEXT: mr r28, r3 1358; CHECK-NEXT: bl __gnu_f2h_ieee 1359; CHECK-NEXT: nop 1360; CHECK-NEXT: fmr f1, f23 1361; CHECK-NEXT: mr r27, r3 1362; CHECK-NEXT: bl __gnu_f2h_ieee 1363; CHECK-NEXT: nop 1364; CHECK-NEXT: fmr f1, f24 1365; CHECK-NEXT: mr r26, r3 1366; CHECK-NEXT: bl __gnu_f2h_ieee 1367; CHECK-NEXT: nop 1368; CHECK-NEXT: fmr f1, f25 1369; CHECK-NEXT: mr r25, r3 1370; CHECK-NEXT: bl __gnu_f2h_ieee 1371; CHECK-NEXT: nop 1372; CHECK-NEXT: fmr f1, f26 1373; CHECK-NEXT: mr r24, r3 1374; CHECK-NEXT: bl __gnu_f2h_ieee 1375; CHECK-NEXT: nop 1376; CHECK-NEXT: fmr f1, f27 1377; CHECK-NEXT: mr r23, r3 1378; CHECK-NEXT: bl __gnu_f2h_ieee 1379; CHECK-NEXT: nop 1380; CHECK-NEXT: fmr f1, f28 1381; CHECK-NEXT: mr r22, r3 1382; CHECK-NEXT: bl __gnu_f2h_ieee 1383; CHECK-NEXT: nop 1384; CHECK-NEXT: fmr f1, f29 1385; CHECK-NEXT: mr r21, r3 1386; CHECK-NEXT: bl __gnu_f2h_ieee 1387; CHECK-NEXT: nop 1388; CHECK-NEXT: fmr f1, f30 1389; CHECK-NEXT: mr r20, r3 1390; CHECK-NEXT: bl __gnu_f2h_ieee 1391; CHECK-NEXT: nop 1392; CHECK-NEXT: fmr f1, f31 1393; CHECK-NEXT: mr r19, r3 1394; CHECK-NEXT: bl __gnu_f2h_ieee 1395; CHECK-NEXT: nop 1396; CHECK-NEXT: lfs f1, 568(r1) 1397; CHECK-NEXT: mr r18, r3 1398; CHECK-NEXT: bl __gnu_f2h_ieee 1399; CHECK-NEXT: nop 1400; CHECK-NEXT: lfs f1, 576(r1) 1401; CHECK-NEXT: mr r17, r3 1402; CHECK-NEXT: bl __gnu_f2h_ieee 1403; CHECK-NEXT: nop 1404; CHECK-NEXT: lfs f1, 584(r1) 1405; CHECK-NEXT: mr r16, r3 1406; CHECK-NEXT: bl __gnu_f2h_ieee 1407; CHECK-NEXT: nop 1408; CHECK-NEXT: clrldi r3, r3, 48 1409; CHECK-NEXT: bl __gnu_h2f_ieee 1410; CHECK-NEXT: nop 1411; CHECK-NEXT: clrldi r3, r16, 48 1412; CHECK-NEXT: fmr f31, f1 1413; CHECK-NEXT: bl __gnu_h2f_ieee 1414; CHECK-NEXT: nop 1415; CHECK-NEXT: clrldi r3, r17, 48 1416; CHECK-NEXT: fmr f30, f1 1417; CHECK-NEXT: bl __gnu_h2f_ieee 1418; CHECK-NEXT: nop 1419; CHECK-NEXT: clrldi r3, r18, 48 1420; CHECK-NEXT: fmr f29, f1 1421; CHECK-NEXT: bl __gnu_h2f_ieee 1422; CHECK-NEXT: nop 1423; CHECK-NEXT: clrldi r3, r19, 48 1424; CHECK-NEXT: fmr f28, f1 1425; CHECK-NEXT: bl __gnu_h2f_ieee 1426; CHECK-NEXT: nop 1427; CHECK-NEXT: clrldi r3, r20, 48 1428; CHECK-NEXT: fmr f27, f1 1429; CHECK-NEXT: bl __gnu_h2f_ieee 1430; CHECK-NEXT: nop 1431; CHECK-NEXT: clrldi r3, r21, 48 1432; CHECK-NEXT: fmr f26, f1 1433; CHECK-NEXT: bl __gnu_h2f_ieee 1434; CHECK-NEXT: nop 1435; CHECK-NEXT: clrldi r3, r22, 48 1436; CHECK-NEXT: fmr f25, f1 1437; CHECK-NEXT: bl __gnu_h2f_ieee 1438; CHECK-NEXT: nop 1439; CHECK-NEXT: clrldi r3, r23, 48 1440; CHECK-NEXT: fmr f24, f1 1441; CHECK-NEXT: bl __gnu_h2f_ieee 1442; CHECK-NEXT: nop 1443; CHECK-NEXT: clrldi r3, r24, 48 1444; CHECK-NEXT: fmr f23, f1 1445; CHECK-NEXT: bl __gnu_h2f_ieee 1446; CHECK-NEXT: nop 1447; CHECK-NEXT: clrldi r3, r25, 48 1448; CHECK-NEXT: fmr f22, f1 1449; CHECK-NEXT: bl __gnu_h2f_ieee 1450; CHECK-NEXT: nop 1451; CHECK-NEXT: clrldi r3, r26, 48 1452; CHECK-NEXT: fmr f21, f1 1453; CHECK-NEXT: bl __gnu_h2f_ieee 1454; CHECK-NEXT: nop 1455; CHECK-NEXT: clrldi r3, r27, 48 1456; CHECK-NEXT: fmr f20, f1 1457; CHECK-NEXT: bl __gnu_h2f_ieee 1458; CHECK-NEXT: nop 1459; CHECK-NEXT: clrldi r3, r28, 48 1460; CHECK-NEXT: fmr f19, f1 1461; CHECK-NEXT: bl __gnu_h2f_ieee 1462; CHECK-NEXT: nop 1463; CHECK-NEXT: clrldi r3, r29, 48 1464; CHECK-NEXT: fmr f18, f1 1465; CHECK-NEXT: bl __gnu_h2f_ieee 1466; CHECK-NEXT: nop 1467; CHECK-NEXT: clrldi r3, r30, 48 1468; CHECK-NEXT: fmr f17, f1 1469; CHECK-NEXT: bl __gnu_h2f_ieee 1470; CHECK-NEXT: nop 1471; CHECK-NEXT: bl llrintf 1472; CHECK-NEXT: nop 1473; CHECK-NEXT: fmr f1, f17 1474; CHECK-NEXT: mtvsrd v31, r3 1475; CHECK-NEXT: bl llrintf 1476; CHECK-NEXT: nop 1477; CHECK-NEXT: fmr f1, f18 1478; CHECK-NEXT: mtfprd f0, r3 1479; CHECK-NEXT: xxmrghd v31, vs0, v31 1480; CHECK-NEXT: bl llrintf 1481; CHECK-NEXT: nop 1482; CHECK-NEXT: fmr f1, f19 1483; CHECK-NEXT: mtvsrd v30, r3 1484; CHECK-NEXT: bl llrintf 1485; CHECK-NEXT: nop 1486; CHECK-NEXT: fmr f1, f20 1487; CHECK-NEXT: mtfprd f0, r3 1488; CHECK-NEXT: xxmrghd v30, vs0, v30 1489; CHECK-NEXT: bl llrintf 1490; CHECK-NEXT: nop 1491; CHECK-NEXT: fmr f1, f21 1492; CHECK-NEXT: mtvsrd v29, r3 1493; CHECK-NEXT: bl llrintf 1494; CHECK-NEXT: nop 1495; CHECK-NEXT: fmr f1, f22 1496; CHECK-NEXT: mtfprd f0, r3 1497; CHECK-NEXT: xxmrghd v29, vs0, v29 1498; CHECK-NEXT: bl llrintf 1499; CHECK-NEXT: nop 1500; CHECK-NEXT: fmr f1, f23 1501; CHECK-NEXT: mtvsrd v28, r3 1502; CHECK-NEXT: bl llrintf 1503; CHECK-NEXT: nop 1504; CHECK-NEXT: fmr f1, f24 1505; CHECK-NEXT: mtfprd f0, r3 1506; CHECK-NEXT: xxmrghd v28, vs0, v28 1507; CHECK-NEXT: bl llrintf 1508; CHECK-NEXT: nop 1509; CHECK-NEXT: fmr f1, f25 1510; CHECK-NEXT: mtvsrd v27, r3 1511; CHECK-NEXT: bl llrintf 1512; CHECK-NEXT: nop 1513; CHECK-NEXT: fmr f1, f26 1514; CHECK-NEXT: mtfprd f0, r3 1515; CHECK-NEXT: xxmrghd v27, vs0, v27 1516; CHECK-NEXT: bl llrintf 1517; CHECK-NEXT: nop 1518; CHECK-NEXT: fmr f1, f27 1519; CHECK-NEXT: mtvsrd v26, r3 1520; CHECK-NEXT: bl llrintf 1521; CHECK-NEXT: nop 1522; CHECK-NEXT: fmr f1, f28 1523; CHECK-NEXT: mtfprd f0, r3 1524; CHECK-NEXT: xxmrghd v26, vs0, v26 1525; CHECK-NEXT: bl llrintf 1526; CHECK-NEXT: nop 1527; CHECK-NEXT: fmr f1, f29 1528; CHECK-NEXT: mtvsrd v25, r3 1529; CHECK-NEXT: bl llrintf 1530; CHECK-NEXT: nop 1531; CHECK-NEXT: fmr f1, f30 1532; CHECK-NEXT: mtfprd f0, r3 1533; CHECK-NEXT: xxmrghd v25, vs0, v25 1534; CHECK-NEXT: bl llrintf 1535; CHECK-NEXT: nop 1536; CHECK-NEXT: fmr f1, f31 1537; CHECK-NEXT: mtvsrd v24, r3 1538; CHECK-NEXT: bl llrintf 1539; CHECK-NEXT: nop 1540; CHECK-NEXT: mtfprd f0, r3 1541; CHECK-NEXT: li r3, 160 1542; CHECK-NEXT: vmr v2, v31 1543; CHECK-NEXT: lfd f31, 424(r1) # 8-byte Folded Reload 1544; CHECK-NEXT: vmr v3, v30 1545; CHECK-NEXT: vmr v4, v29 1546; CHECK-NEXT: lfd f30, 416(r1) # 8-byte Folded Reload 1547; CHECK-NEXT: lfd f29, 408(r1) # 8-byte Folded Reload 1548; CHECK-NEXT: lvx v31, r1, r3 # 16-byte Folded Reload 1549; CHECK-NEXT: li r3, 144 1550; CHECK-NEXT: vmr v5, v28 1551; CHECK-NEXT: vmr v6, v27 1552; CHECK-NEXT: vmr v7, v26 1553; CHECK-NEXT: vmr v8, v25 1554; CHECK-NEXT: lfd f28, 400(r1) # 8-byte Folded Reload 1555; CHECK-NEXT: lfd f27, 392(r1) # 8-byte Folded Reload 1556; CHECK-NEXT: lvx v30, r1, r3 # 16-byte Folded Reload 1557; CHECK-NEXT: li r3, 128 1558; CHECK-NEXT: lfd f26, 384(r1) # 8-byte Folded Reload 1559; CHECK-NEXT: lfd f25, 376(r1) # 8-byte Folded Reload 1560; CHECK-NEXT: xxmrghd v9, vs0, v24 1561; CHECK-NEXT: lfd f24, 368(r1) # 8-byte Folded Reload 1562; CHECK-NEXT: lfd f23, 360(r1) # 8-byte Folded Reload 1563; CHECK-NEXT: lfd f22, 352(r1) # 8-byte Folded Reload 1564; CHECK-NEXT: lvx v29, r1, r3 # 16-byte Folded Reload 1565; CHECK-NEXT: li r3, 112 1566; CHECK-NEXT: lfd f21, 344(r1) # 8-byte Folded Reload 1567; CHECK-NEXT: ld r30, 296(r1) # 8-byte Folded Reload 1568; CHECK-NEXT: lfd f20, 336(r1) # 8-byte Folded Reload 1569; CHECK-NEXT: lfd f19, 328(r1) # 8-byte Folded Reload 1570; CHECK-NEXT: ld r29, 288(r1) # 8-byte Folded Reload 1571; CHECK-NEXT: ld r28, 280(r1) # 8-byte Folded Reload 1572; CHECK-NEXT: lvx v28, r1, r3 # 16-byte Folded Reload 1573; CHECK-NEXT: li r3, 96 1574; CHECK-NEXT: lfd f18, 320(r1) # 8-byte Folded Reload 1575; CHECK-NEXT: ld r27, 272(r1) # 8-byte Folded Reload 1576; CHECK-NEXT: lfd f17, 312(r1) # 8-byte Folded Reload 1577; CHECK-NEXT: ld r26, 264(r1) # 8-byte Folded Reload 1578; CHECK-NEXT: ld r25, 256(r1) # 8-byte Folded Reload 1579; CHECK-NEXT: ld r24, 248(r1) # 8-byte Folded Reload 1580; CHECK-NEXT: lvx v27, r1, r3 # 16-byte Folded Reload 1581; CHECK-NEXT: li r3, 80 1582; CHECK-NEXT: ld r23, 240(r1) # 8-byte Folded Reload 1583; CHECK-NEXT: ld r22, 232(r1) # 8-byte Folded Reload 1584; CHECK-NEXT: ld r21, 224(r1) # 8-byte Folded Reload 1585; CHECK-NEXT: ld r20, 216(r1) # 8-byte Folded Reload 1586; CHECK-NEXT: ld r19, 208(r1) # 8-byte Folded Reload 1587; CHECK-NEXT: ld r18, 200(r1) # 8-byte Folded Reload 1588; CHECK-NEXT: lvx v26, r1, r3 # 16-byte Folded Reload 1589; CHECK-NEXT: li r3, 64 1590; CHECK-NEXT: ld r17, 192(r1) # 8-byte Folded Reload 1591; CHECK-NEXT: ld r16, 184(r1) # 8-byte Folded Reload 1592; CHECK-NEXT: lvx v25, r1, r3 # 16-byte Folded Reload 1593; CHECK-NEXT: li r3, 48 1594; CHECK-NEXT: lvx v24, r1, r3 # 16-byte Folded Reload 1595; CHECK-NEXT: addi r1, r1, 432 1596; CHECK-NEXT: ld r0, 16(r1) 1597; CHECK-NEXT: mtlr r0 1598; CHECK-NEXT: blr 1599; 1600; FAST-LABEL: llrint_v16i64_v16f16: 1601; FAST: # %bb.0: 1602; FAST-NEXT: mflr r0 1603; FAST-NEXT: .cfi_def_cfa_offset 160 1604; FAST-NEXT: .cfi_offset lr, 16 1605; FAST-NEXT: .cfi_offset f16, -128 1606; FAST-NEXT: .cfi_offset f17, -120 1607; FAST-NEXT: .cfi_offset f18, -112 1608; FAST-NEXT: .cfi_offset f19, -104 1609; FAST-NEXT: .cfi_offset f20, -96 1610; FAST-NEXT: .cfi_offset f21, -88 1611; FAST-NEXT: .cfi_offset f22, -80 1612; FAST-NEXT: .cfi_offset f23, -72 1613; FAST-NEXT: .cfi_offset f24, -64 1614; FAST-NEXT: .cfi_offset f25, -56 1615; FAST-NEXT: .cfi_offset f26, -48 1616; FAST-NEXT: .cfi_offset f27, -40 1617; FAST-NEXT: .cfi_offset f28, -32 1618; FAST-NEXT: .cfi_offset f29, -24 1619; FAST-NEXT: .cfi_offset f30, -16 1620; FAST-NEXT: .cfi_offset f31, -8 1621; FAST-NEXT: stfd f16, -128(r1) # 8-byte Folded Spill 1622; FAST-NEXT: stfd f17, -120(r1) # 8-byte Folded Spill 1623; FAST-NEXT: stfd f18, -112(r1) # 8-byte Folded Spill 1624; FAST-NEXT: stfd f19, -104(r1) # 8-byte Folded Spill 1625; FAST-NEXT: stfd f20, -96(r1) # 8-byte Folded Spill 1626; FAST-NEXT: stfd f21, -88(r1) # 8-byte Folded Spill 1627; FAST-NEXT: stfd f22, -80(r1) # 8-byte Folded Spill 1628; FAST-NEXT: stfd f23, -72(r1) # 8-byte Folded Spill 1629; FAST-NEXT: stfd f24, -64(r1) # 8-byte Folded Spill 1630; FAST-NEXT: stfd f25, -56(r1) # 8-byte Folded Spill 1631; FAST-NEXT: stfd f26, -48(r1) # 8-byte Folded Spill 1632; FAST-NEXT: stfd f27, -40(r1) # 8-byte Folded Spill 1633; FAST-NEXT: stfd f28, -32(r1) # 8-byte Folded Spill 1634; FAST-NEXT: stfd f29, -24(r1) # 8-byte Folded Spill 1635; FAST-NEXT: stfd f30, -16(r1) # 8-byte Folded Spill 1636; FAST-NEXT: stfd f31, -8(r1) # 8-byte Folded Spill 1637; FAST-NEXT: stdu r1, -160(r1) 1638; FAST-NEXT: fmr f26, f1 1639; FAST-NEXT: lfs f1, 312(r1) 1640; FAST-NEXT: std r0, 176(r1) 1641; FAST-NEXT: fmr f28, f13 1642; FAST-NEXT: fmr f27, f12 1643; FAST-NEXT: fmr f24, f11 1644; FAST-NEXT: fmr f21, f10 1645; FAST-NEXT: fmr f19, f9 1646; FAST-NEXT: fmr f18, f8 1647; FAST-NEXT: fmr f17, f7 1648; FAST-NEXT: fmr f16, f6 1649; FAST-NEXT: fmr f20, f5 1650; FAST-NEXT: fmr f22, f4 1651; FAST-NEXT: fmr f23, f3 1652; FAST-NEXT: fmr f25, f2 1653; FAST-NEXT: bl __gnu_f2h_ieee 1654; FAST-NEXT: nop 1655; FAST-NEXT: clrldi r3, r3, 48 1656; FAST-NEXT: bl __gnu_h2f_ieee 1657; FAST-NEXT: nop 1658; FAST-NEXT: fmr f31, f1 1659; FAST-NEXT: lfs f1, 304(r1) 1660; FAST-NEXT: bl __gnu_f2h_ieee 1661; FAST-NEXT: nop 1662; FAST-NEXT: clrldi r3, r3, 48 1663; FAST-NEXT: bl __gnu_h2f_ieee 1664; FAST-NEXT: nop 1665; FAST-NEXT: fmr f30, f1 1666; FAST-NEXT: lfs f1, 296(r1) 1667; FAST-NEXT: bl __gnu_f2h_ieee 1668; FAST-NEXT: nop 1669; FAST-NEXT: clrldi r3, r3, 48 1670; FAST-NEXT: bl __gnu_h2f_ieee 1671; FAST-NEXT: nop 1672; FAST-NEXT: fmr f29, f1 1673; FAST-NEXT: fmr f1, f28 1674; FAST-NEXT: bl __gnu_f2h_ieee 1675; FAST-NEXT: nop 1676; FAST-NEXT: clrldi r3, r3, 48 1677; FAST-NEXT: bl __gnu_h2f_ieee 1678; FAST-NEXT: nop 1679; FAST-NEXT: fmr f28, f1 1680; FAST-NEXT: fmr f1, f27 1681; FAST-NEXT: bl __gnu_f2h_ieee 1682; FAST-NEXT: nop 1683; FAST-NEXT: clrldi r3, r3, 48 1684; FAST-NEXT: bl __gnu_h2f_ieee 1685; FAST-NEXT: nop 1686; FAST-NEXT: fmr f27, f1 1687; FAST-NEXT: fmr f1, f24 1688; FAST-NEXT: bl __gnu_f2h_ieee 1689; FAST-NEXT: nop 1690; FAST-NEXT: clrldi r3, r3, 48 1691; FAST-NEXT: bl __gnu_h2f_ieee 1692; FAST-NEXT: nop 1693; FAST-NEXT: fmr f24, f1 1694; FAST-NEXT: fmr f1, f21 1695; FAST-NEXT: bl __gnu_f2h_ieee 1696; FAST-NEXT: nop 1697; FAST-NEXT: clrldi r3, r3, 48 1698; FAST-NEXT: bl __gnu_h2f_ieee 1699; FAST-NEXT: nop 1700; FAST-NEXT: fmr f21, f1 1701; FAST-NEXT: fmr f1, f19 1702; FAST-NEXT: bl __gnu_f2h_ieee 1703; FAST-NEXT: nop 1704; FAST-NEXT: clrldi r3, r3, 48 1705; FAST-NEXT: bl __gnu_h2f_ieee 1706; FAST-NEXT: nop 1707; FAST-NEXT: fmr f19, f1 1708; FAST-NEXT: fmr f1, f18 1709; FAST-NEXT: bl __gnu_f2h_ieee 1710; FAST-NEXT: nop 1711; FAST-NEXT: clrldi r3, r3, 48 1712; FAST-NEXT: bl __gnu_h2f_ieee 1713; FAST-NEXT: nop 1714; FAST-NEXT: fmr f18, f1 1715; FAST-NEXT: fmr f1, f17 1716; FAST-NEXT: bl __gnu_f2h_ieee 1717; FAST-NEXT: nop 1718; FAST-NEXT: clrldi r3, r3, 48 1719; FAST-NEXT: bl __gnu_h2f_ieee 1720; FAST-NEXT: nop 1721; FAST-NEXT: fmr f17, f1 1722; FAST-NEXT: fmr f1, f16 1723; FAST-NEXT: bl __gnu_f2h_ieee 1724; FAST-NEXT: nop 1725; FAST-NEXT: clrldi r3, r3, 48 1726; FAST-NEXT: bl __gnu_h2f_ieee 1727; FAST-NEXT: nop 1728; FAST-NEXT: fmr f16, f1 1729; FAST-NEXT: fmr f1, f20 1730; FAST-NEXT: bl __gnu_f2h_ieee 1731; FAST-NEXT: nop 1732; FAST-NEXT: clrldi r3, r3, 48 1733; FAST-NEXT: bl __gnu_h2f_ieee 1734; FAST-NEXT: nop 1735; FAST-NEXT: fmr f20, f1 1736; FAST-NEXT: fmr f1, f22 1737; FAST-NEXT: bl __gnu_f2h_ieee 1738; FAST-NEXT: nop 1739; FAST-NEXT: clrldi r3, r3, 48 1740; FAST-NEXT: bl __gnu_h2f_ieee 1741; FAST-NEXT: nop 1742; FAST-NEXT: fmr f22, f1 1743; FAST-NEXT: fmr f1, f23 1744; FAST-NEXT: bl __gnu_f2h_ieee 1745; FAST-NEXT: nop 1746; FAST-NEXT: clrldi r3, r3, 48 1747; FAST-NEXT: bl __gnu_h2f_ieee 1748; FAST-NEXT: nop 1749; FAST-NEXT: fmr f23, f1 1750; FAST-NEXT: fmr f1, f25 1751; FAST-NEXT: bl __gnu_f2h_ieee 1752; FAST-NEXT: nop 1753; FAST-NEXT: clrldi r3, r3, 48 1754; FAST-NEXT: bl __gnu_h2f_ieee 1755; FAST-NEXT: nop 1756; FAST-NEXT: fmr f25, f1 1757; FAST-NEXT: fmr f1, f26 1758; FAST-NEXT: bl __gnu_f2h_ieee 1759; FAST-NEXT: nop 1760; FAST-NEXT: clrldi r3, r3, 48 1761; FAST-NEXT: bl __gnu_h2f_ieee 1762; FAST-NEXT: nop 1763; FAST-NEXT: fctid f0, f25 1764; FAST-NEXT: fctid f2, f23 1765; FAST-NEXT: mffprd r3, f0 1766; FAST-NEXT: fctid f3, f22 1767; FAST-NEXT: fctid f4, f20 1768; FAST-NEXT: fctid f5, f16 1769; FAST-NEXT: fctid f6, f17 1770; FAST-NEXT: fctid f7, f18 1771; FAST-NEXT: fctid f8, f19 1772; FAST-NEXT: fctid f9, f21 1773; FAST-NEXT: fctid f10, f24 1774; FAST-NEXT: fctid f1, f1 1775; FAST-NEXT: mtfprd f0, r3 1776; FAST-NEXT: mffprd r3, f2 1777; FAST-NEXT: mtfprd f2, r3 1778; FAST-NEXT: mffprd r3, f3 1779; FAST-NEXT: mtfprd f3, r3 1780; FAST-NEXT: mffprd r3, f4 1781; FAST-NEXT: mtfprd f4, r3 1782; FAST-NEXT: mffprd r3, f5 1783; FAST-NEXT: mtfprd f5, r3 1784; FAST-NEXT: mffprd r3, f6 1785; FAST-NEXT: mtfprd f6, r3 1786; FAST-NEXT: mffprd r3, f7 1787; FAST-NEXT: mtfprd f7, r3 1788; FAST-NEXT: mffprd r3, f8 1789; FAST-NEXT: mtfprd f8, r3 1790; FAST-NEXT: mffprd r3, f9 1791; FAST-NEXT: mtfprd f9, r3 1792; FAST-NEXT: mffprd r3, f10 1793; FAST-NEXT: mtfprd f10, r3 1794; FAST-NEXT: mffprd r3, f1 1795; FAST-NEXT: mtfprd f1, r3 1796; FAST-NEXT: xxmrghd v3, vs3, vs2 1797; FAST-NEXT: xxmrghd v4, vs5, vs4 1798; FAST-NEXT: xxmrghd v5, vs7, vs6 1799; FAST-NEXT: xxmrghd v6, vs9, vs8 1800; FAST-NEXT: xxmrghd v2, vs0, vs1 1801; FAST-NEXT: fctid f0, f27 1802; FAST-NEXT: fctid f1, f29 1803; FAST-NEXT: mffprd r3, f0 1804; FAST-NEXT: mtfprd f0, r3 1805; FAST-NEXT: xxmrghd v7, vs0, vs10 1806; FAST-NEXT: fctid f0, f28 1807; FAST-NEXT: mffprd r3, f0 1808; FAST-NEXT: mtfprd f0, r3 1809; FAST-NEXT: mffprd r3, f1 1810; FAST-NEXT: mtfprd f1, r3 1811; FAST-NEXT: xxmrghd v8, vs1, vs0 1812; FAST-NEXT: fctid f0, f30 1813; FAST-NEXT: fctid f1, f31 1814; FAST-NEXT: mffprd r3, f0 1815; FAST-NEXT: mtfprd f0, r3 1816; FAST-NEXT: mffprd r3, f1 1817; FAST-NEXT: mtfprd f1, r3 1818; FAST-NEXT: xxmrghd v9, vs1, vs0 1819; FAST-NEXT: addi r1, r1, 160 1820; FAST-NEXT: ld r0, 16(r1) 1821; FAST-NEXT: lfd f31, -8(r1) # 8-byte Folded Reload 1822; FAST-NEXT: lfd f30, -16(r1) # 8-byte Folded Reload 1823; FAST-NEXT: mtlr r0 1824; FAST-NEXT: lfd f29, -24(r1) # 8-byte Folded Reload 1825; FAST-NEXT: lfd f28, -32(r1) # 8-byte Folded Reload 1826; FAST-NEXT: lfd f27, -40(r1) # 8-byte Folded Reload 1827; FAST-NEXT: lfd f26, -48(r1) # 8-byte Folded Reload 1828; FAST-NEXT: lfd f25, -56(r1) # 8-byte Folded Reload 1829; FAST-NEXT: lfd f24, -64(r1) # 8-byte Folded Reload 1830; FAST-NEXT: lfd f23, -72(r1) # 8-byte Folded Reload 1831; FAST-NEXT: lfd f22, -80(r1) # 8-byte Folded Reload 1832; FAST-NEXT: lfd f21, -88(r1) # 8-byte Folded Reload 1833; FAST-NEXT: lfd f20, -96(r1) # 8-byte Folded Reload 1834; FAST-NEXT: lfd f19, -104(r1) # 8-byte Folded Reload 1835; FAST-NEXT: lfd f18, -112(r1) # 8-byte Folded Reload 1836; FAST-NEXT: lfd f17, -120(r1) # 8-byte Folded Reload 1837; FAST-NEXT: lfd f16, -128(r1) # 8-byte Folded Reload 1838; FAST-NEXT: blr 1839 %a = call <16 x i64> @llvm.llrint.v16i64.v16f16(<16 x half> %x) 1840 ret <16 x i64> %a 1841} 1842declare <16 x i64> @llvm.llrint.v16i64.v16f16(<16 x half>) 1843 1844define <32 x i64> @llrint_v32i64_v32f16(<32 x half> %x) { 1845; BE-LABEL: llrint_v32i64_v32f16: 1846; BE: # %bb.0: 1847; BE-NEXT: mflr r0 1848; BE-NEXT: stdu r1, -864(r1) 1849; BE-NEXT: std r0, 880(r1) 1850; BE-NEXT: .cfi_def_cfa_offset 864 1851; BE-NEXT: .cfi_offset lr, 16 1852; BE-NEXT: .cfi_offset r14, -288 1853; BE-NEXT: .cfi_offset r15, -280 1854; BE-NEXT: .cfi_offset r16, -272 1855; BE-NEXT: .cfi_offset r17, -264 1856; BE-NEXT: .cfi_offset r18, -256 1857; BE-NEXT: .cfi_offset r19, -248 1858; BE-NEXT: .cfi_offset r20, -240 1859; BE-NEXT: .cfi_offset r21, -232 1860; BE-NEXT: .cfi_offset r22, -224 1861; BE-NEXT: .cfi_offset r23, -216 1862; BE-NEXT: .cfi_offset r24, -208 1863; BE-NEXT: .cfi_offset r25, -200 1864; BE-NEXT: .cfi_offset r26, -192 1865; BE-NEXT: .cfi_offset r27, -184 1866; BE-NEXT: .cfi_offset r28, -176 1867; BE-NEXT: .cfi_offset r29, -168 1868; BE-NEXT: .cfi_offset r30, -160 1869; BE-NEXT: .cfi_offset r31, -152 1870; BE-NEXT: .cfi_offset f14, -144 1871; BE-NEXT: .cfi_offset f15, -136 1872; BE-NEXT: .cfi_offset f16, -128 1873; BE-NEXT: .cfi_offset f17, -120 1874; BE-NEXT: .cfi_offset f18, -112 1875; BE-NEXT: .cfi_offset f19, -104 1876; BE-NEXT: .cfi_offset f20, -96 1877; BE-NEXT: .cfi_offset f21, -88 1878; BE-NEXT: .cfi_offset f22, -80 1879; BE-NEXT: .cfi_offset f23, -72 1880; BE-NEXT: .cfi_offset f24, -64 1881; BE-NEXT: .cfi_offset f25, -56 1882; BE-NEXT: .cfi_offset f26, -48 1883; BE-NEXT: .cfi_offset f27, -40 1884; BE-NEXT: .cfi_offset f28, -32 1885; BE-NEXT: .cfi_offset f29, -24 1886; BE-NEXT: .cfi_offset f30, -16 1887; BE-NEXT: .cfi_offset f31, -8 1888; BE-NEXT: stfd f20, 768(r1) # 8-byte Folded Spill 1889; BE-NEXT: fmr f20, f1 1890; BE-NEXT: fmr f1, f2 1891; BE-NEXT: std r14, 576(r1) # 8-byte Folded Spill 1892; BE-NEXT: std r15, 584(r1) # 8-byte Folded Spill 1893; BE-NEXT: std r16, 592(r1) # 8-byte Folded Spill 1894; BE-NEXT: std r17, 600(r1) # 8-byte Folded Spill 1895; BE-NEXT: std r18, 608(r1) # 8-byte Folded Spill 1896; BE-NEXT: std r19, 616(r1) # 8-byte Folded Spill 1897; BE-NEXT: std r20, 624(r1) # 8-byte Folded Spill 1898; BE-NEXT: std r21, 632(r1) # 8-byte Folded Spill 1899; BE-NEXT: std r22, 640(r1) # 8-byte Folded Spill 1900; BE-NEXT: std r23, 648(r1) # 8-byte Folded Spill 1901; BE-NEXT: std r24, 656(r1) # 8-byte Folded Spill 1902; BE-NEXT: std r25, 664(r1) # 8-byte Folded Spill 1903; BE-NEXT: std r26, 672(r1) # 8-byte Folded Spill 1904; BE-NEXT: std r27, 680(r1) # 8-byte Folded Spill 1905; BE-NEXT: std r28, 688(r1) # 8-byte Folded Spill 1906; BE-NEXT: std r29, 696(r1) # 8-byte Folded Spill 1907; BE-NEXT: std r30, 704(r1) # 8-byte Folded Spill 1908; BE-NEXT: std r31, 712(r1) # 8-byte Folded Spill 1909; BE-NEXT: stfd f14, 720(r1) # 8-byte Folded Spill 1910; BE-NEXT: stfd f15, 728(r1) # 8-byte Folded Spill 1911; BE-NEXT: stfd f16, 736(r1) # 8-byte Folded Spill 1912; BE-NEXT: stfd f17, 744(r1) # 8-byte Folded Spill 1913; BE-NEXT: stfd f18, 752(r1) # 8-byte Folded Spill 1914; BE-NEXT: stfd f19, 760(r1) # 8-byte Folded Spill 1915; BE-NEXT: stfd f21, 776(r1) # 8-byte Folded Spill 1916; BE-NEXT: stfd f22, 784(r1) # 8-byte Folded Spill 1917; BE-NEXT: stfd f23, 792(r1) # 8-byte Folded Spill 1918; BE-NEXT: stfd f24, 800(r1) # 8-byte Folded Spill 1919; BE-NEXT: stfd f25, 808(r1) # 8-byte Folded Spill 1920; BE-NEXT: stfd f26, 816(r1) # 8-byte Folded Spill 1921; BE-NEXT: stfd f27, 824(r1) # 8-byte Folded Spill 1922; BE-NEXT: stfd f28, 832(r1) # 8-byte Folded Spill 1923; BE-NEXT: stfd f29, 840(r1) # 8-byte Folded Spill 1924; BE-NEXT: stfd f30, 848(r1) # 8-byte Folded Spill 1925; BE-NEXT: stfd f31, 856(r1) # 8-byte Folded Spill 1926; BE-NEXT: fmr f31, f13 1927; BE-NEXT: fmr f29, f12 1928; BE-NEXT: fmr f30, f11 1929; BE-NEXT: fmr f28, f10 1930; BE-NEXT: fmr f27, f9 1931; BE-NEXT: fmr f26, f8 1932; BE-NEXT: fmr f25, f7 1933; BE-NEXT: fmr f24, f6 1934; BE-NEXT: fmr f23, f5 1935; BE-NEXT: fmr f22, f4 1936; BE-NEXT: fmr f21, f3 1937; BE-NEXT: mr r30, r3 1938; BE-NEXT: bl __gnu_f2h_ieee 1939; BE-NEXT: nop 1940; BE-NEXT: fmr f1, f20 1941; BE-NEXT: std r3, 304(r1) # 8-byte Folded Spill 1942; BE-NEXT: bl __gnu_f2h_ieee 1943; BE-NEXT: nop 1944; BE-NEXT: fmr f1, f22 1945; BE-NEXT: std r3, 296(r1) # 8-byte Folded Spill 1946; BE-NEXT: bl __gnu_f2h_ieee 1947; BE-NEXT: nop 1948; BE-NEXT: fmr f1, f21 1949; BE-NEXT: std r3, 280(r1) # 8-byte Folded Spill 1950; BE-NEXT: bl __gnu_f2h_ieee 1951; BE-NEXT: nop 1952; BE-NEXT: fmr f1, f24 1953; BE-NEXT: std r3, 264(r1) # 8-byte Folded Spill 1954; BE-NEXT: bl __gnu_f2h_ieee 1955; BE-NEXT: nop 1956; BE-NEXT: fmr f1, f23 1957; BE-NEXT: std r3, 248(r1) # 8-byte Folded Spill 1958; BE-NEXT: bl __gnu_f2h_ieee 1959; BE-NEXT: nop 1960; BE-NEXT: fmr f1, f26 1961; BE-NEXT: std r3, 232(r1) # 8-byte Folded Spill 1962; BE-NEXT: bl __gnu_f2h_ieee 1963; BE-NEXT: nop 1964; BE-NEXT: fmr f1, f25 1965; BE-NEXT: std r3, 216(r1) # 8-byte Folded Spill 1966; BE-NEXT: bl __gnu_f2h_ieee 1967; BE-NEXT: nop 1968; BE-NEXT: fmr f1, f28 1969; BE-NEXT: std r3, 200(r1) # 8-byte Folded Spill 1970; BE-NEXT: bl __gnu_f2h_ieee 1971; BE-NEXT: nop 1972; BE-NEXT: fmr f1, f27 1973; BE-NEXT: std r3, 184(r1) # 8-byte Folded Spill 1974; BE-NEXT: bl __gnu_f2h_ieee 1975; BE-NEXT: nop 1976; BE-NEXT: fmr f1, f29 1977; BE-NEXT: std r3, 168(r1) # 8-byte Folded Spill 1978; BE-NEXT: bl __gnu_f2h_ieee 1979; BE-NEXT: nop 1980; BE-NEXT: fmr f1, f30 1981; BE-NEXT: std r3, 152(r1) # 8-byte Folded Spill 1982; BE-NEXT: bl __gnu_f2h_ieee 1983; BE-NEXT: nop 1984; BE-NEXT: lfs f1, 1028(r1) 1985; BE-NEXT: std r3, 136(r1) # 8-byte Folded Spill 1986; BE-NEXT: bl __gnu_f2h_ieee 1987; BE-NEXT: nop 1988; BE-NEXT: fmr f1, f31 1989; BE-NEXT: std r3, 120(r1) # 8-byte Folded Spill 1990; BE-NEXT: bl __gnu_f2h_ieee 1991; BE-NEXT: nop 1992; BE-NEXT: lfs f1, 1044(r1) 1993; BE-NEXT: std r3, 112(r1) # 8-byte Folded Spill 1994; BE-NEXT: bl __gnu_f2h_ieee 1995; BE-NEXT: nop 1996; BE-NEXT: lfs f1, 1036(r1) 1997; BE-NEXT: mr r15, r3 1998; BE-NEXT: bl __gnu_f2h_ieee 1999; BE-NEXT: nop 2000; BE-NEXT: lfs f1, 1060(r1) 2001; BE-NEXT: mr r14, r3 2002; BE-NEXT: bl __gnu_f2h_ieee 2003; BE-NEXT: nop 2004; BE-NEXT: lfs f1, 1052(r1) 2005; BE-NEXT: mr r31, r3 2006; BE-NEXT: bl __gnu_f2h_ieee 2007; BE-NEXT: nop 2008; BE-NEXT: lfs f1, 1076(r1) 2009; BE-NEXT: mr r29, r3 2010; BE-NEXT: bl __gnu_f2h_ieee 2011; BE-NEXT: nop 2012; BE-NEXT: lfs f1, 1068(r1) 2013; BE-NEXT: mr r28, r3 2014; BE-NEXT: bl __gnu_f2h_ieee 2015; BE-NEXT: nop 2016; BE-NEXT: lfs f1, 1092(r1) 2017; BE-NEXT: mr r27, r3 2018; BE-NEXT: bl __gnu_f2h_ieee 2019; BE-NEXT: nop 2020; BE-NEXT: lfs f1, 1084(r1) 2021; BE-NEXT: mr r26, r3 2022; BE-NEXT: bl __gnu_f2h_ieee 2023; BE-NEXT: nop 2024; BE-NEXT: lfs f1, 1108(r1) 2025; BE-NEXT: mr r25, r3 2026; BE-NEXT: bl __gnu_f2h_ieee 2027; BE-NEXT: nop 2028; BE-NEXT: lfs f1, 1100(r1) 2029; BE-NEXT: mr r24, r3 2030; BE-NEXT: bl __gnu_f2h_ieee 2031; BE-NEXT: nop 2032; BE-NEXT: lfs f1, 1124(r1) 2033; BE-NEXT: mr r23, r3 2034; BE-NEXT: bl __gnu_f2h_ieee 2035; BE-NEXT: nop 2036; BE-NEXT: lfs f1, 1116(r1) 2037; BE-NEXT: mr r22, r3 2038; BE-NEXT: bl __gnu_f2h_ieee 2039; BE-NEXT: nop 2040; BE-NEXT: lfs f1, 1140(r1) 2041; BE-NEXT: mr r21, r3 2042; BE-NEXT: bl __gnu_f2h_ieee 2043; BE-NEXT: nop 2044; BE-NEXT: lfs f1, 1132(r1) 2045; BE-NEXT: mr r20, r3 2046; BE-NEXT: bl __gnu_f2h_ieee 2047; BE-NEXT: nop 2048; BE-NEXT: lfs f1, 1156(r1) 2049; BE-NEXT: mr r19, r3 2050; BE-NEXT: bl __gnu_f2h_ieee 2051; BE-NEXT: nop 2052; BE-NEXT: lfs f1, 1148(r1) 2053; BE-NEXT: mr r18, r3 2054; BE-NEXT: bl __gnu_f2h_ieee 2055; BE-NEXT: nop 2056; BE-NEXT: lfs f1, 1172(r1) 2057; BE-NEXT: mr r17, r3 2058; BE-NEXT: bl __gnu_f2h_ieee 2059; BE-NEXT: nop 2060; BE-NEXT: lfs f1, 1164(r1) 2061; BE-NEXT: mr r16, r3 2062; BE-NEXT: bl __gnu_f2h_ieee 2063; BE-NEXT: nop 2064; BE-NEXT: clrldi r3, r3, 48 2065; BE-NEXT: bl __gnu_h2f_ieee 2066; BE-NEXT: nop 2067; BE-NEXT: clrldi r3, r16, 48 2068; BE-NEXT: stfs f1, 316(r1) # 4-byte Folded Spill 2069; BE-NEXT: bl __gnu_h2f_ieee 2070; BE-NEXT: nop 2071; BE-NEXT: clrldi r3, r17, 48 2072; BE-NEXT: stfs f1, 312(r1) # 4-byte Folded Spill 2073; BE-NEXT: bl __gnu_h2f_ieee 2074; BE-NEXT: nop 2075; BE-NEXT: clrldi r3, r18, 48 2076; BE-NEXT: stfs f1, 292(r1) # 4-byte Folded Spill 2077; BE-NEXT: bl __gnu_h2f_ieee 2078; BE-NEXT: nop 2079; BE-NEXT: clrldi r3, r19, 48 2080; BE-NEXT: stfs f1, 276(r1) # 4-byte Folded Spill 2081; BE-NEXT: bl __gnu_h2f_ieee 2082; BE-NEXT: nop 2083; BE-NEXT: clrldi r3, r20, 48 2084; BE-NEXT: stfs f1, 260(r1) # 4-byte Folded Spill 2085; BE-NEXT: bl __gnu_h2f_ieee 2086; BE-NEXT: nop 2087; BE-NEXT: clrldi r3, r21, 48 2088; BE-NEXT: stfs f1, 244(r1) # 4-byte Folded Spill 2089; BE-NEXT: bl __gnu_h2f_ieee 2090; BE-NEXT: nop 2091; BE-NEXT: clrldi r3, r22, 48 2092; BE-NEXT: stfs f1, 228(r1) # 4-byte Folded Spill 2093; BE-NEXT: bl __gnu_h2f_ieee 2094; BE-NEXT: nop 2095; BE-NEXT: clrldi r3, r23, 48 2096; BE-NEXT: stfs f1, 212(r1) # 4-byte Folded Spill 2097; BE-NEXT: bl __gnu_h2f_ieee 2098; BE-NEXT: nop 2099; BE-NEXT: clrldi r3, r24, 48 2100; BE-NEXT: stfs f1, 196(r1) # 4-byte Folded Spill 2101; BE-NEXT: bl __gnu_h2f_ieee 2102; BE-NEXT: nop 2103; BE-NEXT: clrldi r3, r25, 48 2104; BE-NEXT: stfs f1, 180(r1) # 4-byte Folded Spill 2105; BE-NEXT: bl __gnu_h2f_ieee 2106; BE-NEXT: nop 2107; BE-NEXT: clrldi r3, r26, 48 2108; BE-NEXT: stfs f1, 164(r1) # 4-byte Folded Spill 2109; BE-NEXT: bl __gnu_h2f_ieee 2110; BE-NEXT: nop 2111; BE-NEXT: clrldi r3, r27, 48 2112; BE-NEXT: stfs f1, 148(r1) # 4-byte Folded Spill 2113; BE-NEXT: bl __gnu_h2f_ieee 2114; BE-NEXT: nop 2115; BE-NEXT: clrldi r3, r28, 48 2116; BE-NEXT: stfs f1, 132(r1) # 4-byte Folded Spill 2117; BE-NEXT: bl __gnu_h2f_ieee 2118; BE-NEXT: nop 2119; BE-NEXT: clrldi r3, r29, 48 2120; BE-NEXT: fmr f18, f1 2121; BE-NEXT: bl __gnu_h2f_ieee 2122; BE-NEXT: nop 2123; BE-NEXT: clrldi r3, r31, 48 2124; BE-NEXT: fmr f17, f1 2125; BE-NEXT: bl __gnu_h2f_ieee 2126; BE-NEXT: nop 2127; BE-NEXT: clrldi r3, r14, 48 2128; BE-NEXT: fmr f16, f1 2129; BE-NEXT: bl __gnu_h2f_ieee 2130; BE-NEXT: nop 2131; BE-NEXT: clrldi r3, r15, 48 2132; BE-NEXT: fmr f15, f1 2133; BE-NEXT: bl __gnu_h2f_ieee 2134; BE-NEXT: nop 2135; BE-NEXT: ld r3, 112(r1) # 8-byte Folded Reload 2136; BE-NEXT: fmr f14, f1 2137; BE-NEXT: clrldi r3, r3, 48 2138; BE-NEXT: bl __gnu_h2f_ieee 2139; BE-NEXT: nop 2140; BE-NEXT: ld r3, 120(r1) # 8-byte Folded Reload 2141; BE-NEXT: fmr f31, f1 2142; BE-NEXT: clrldi r3, r3, 48 2143; BE-NEXT: bl __gnu_h2f_ieee 2144; BE-NEXT: nop 2145; BE-NEXT: ld r3, 136(r1) # 8-byte Folded Reload 2146; BE-NEXT: fmr f30, f1 2147; BE-NEXT: clrldi r3, r3, 48 2148; BE-NEXT: bl __gnu_h2f_ieee 2149; BE-NEXT: nop 2150; BE-NEXT: ld r3, 152(r1) # 8-byte Folded Reload 2151; BE-NEXT: fmr f29, f1 2152; BE-NEXT: clrldi r3, r3, 48 2153; BE-NEXT: bl __gnu_h2f_ieee 2154; BE-NEXT: nop 2155; BE-NEXT: ld r3, 168(r1) # 8-byte Folded Reload 2156; BE-NEXT: fmr f28, f1 2157; BE-NEXT: clrldi r3, r3, 48 2158; BE-NEXT: bl __gnu_h2f_ieee 2159; BE-NEXT: nop 2160; BE-NEXT: ld r3, 184(r1) # 8-byte Folded Reload 2161; BE-NEXT: fmr f27, f1 2162; BE-NEXT: clrldi r3, r3, 48 2163; BE-NEXT: bl __gnu_h2f_ieee 2164; BE-NEXT: nop 2165; BE-NEXT: ld r3, 200(r1) # 8-byte Folded Reload 2166; BE-NEXT: fmr f26, f1 2167; BE-NEXT: clrldi r3, r3, 48 2168; BE-NEXT: bl __gnu_h2f_ieee 2169; BE-NEXT: nop 2170; BE-NEXT: ld r3, 216(r1) # 8-byte Folded Reload 2171; BE-NEXT: fmr f25, f1 2172; BE-NEXT: clrldi r3, r3, 48 2173; BE-NEXT: bl __gnu_h2f_ieee 2174; BE-NEXT: nop 2175; BE-NEXT: ld r3, 232(r1) # 8-byte Folded Reload 2176; BE-NEXT: fmr f24, f1 2177; BE-NEXT: clrldi r3, r3, 48 2178; BE-NEXT: bl __gnu_h2f_ieee 2179; BE-NEXT: nop 2180; BE-NEXT: ld r3, 248(r1) # 8-byte Folded Reload 2181; BE-NEXT: fmr f23, f1 2182; BE-NEXT: clrldi r3, r3, 48 2183; BE-NEXT: bl __gnu_h2f_ieee 2184; BE-NEXT: nop 2185; BE-NEXT: ld r3, 264(r1) # 8-byte Folded Reload 2186; BE-NEXT: fmr f22, f1 2187; BE-NEXT: clrldi r3, r3, 48 2188; BE-NEXT: bl __gnu_h2f_ieee 2189; BE-NEXT: nop 2190; BE-NEXT: ld r3, 280(r1) # 8-byte Folded Reload 2191; BE-NEXT: fmr f21, f1 2192; BE-NEXT: clrldi r3, r3, 48 2193; BE-NEXT: bl __gnu_h2f_ieee 2194; BE-NEXT: nop 2195; BE-NEXT: ld r3, 296(r1) # 8-byte Folded Reload 2196; BE-NEXT: fmr f20, f1 2197; BE-NEXT: clrldi r3, r3, 48 2198; BE-NEXT: bl __gnu_h2f_ieee 2199; BE-NEXT: nop 2200; BE-NEXT: ld r3, 304(r1) # 8-byte Folded Reload 2201; BE-NEXT: fmr f19, f1 2202; BE-NEXT: clrldi r3, r3, 48 2203; BE-NEXT: bl __gnu_h2f_ieee 2204; BE-NEXT: nop 2205; BE-NEXT: bl llrintf 2206; BE-NEXT: nop 2207; BE-NEXT: fmr f1, f19 2208; BE-NEXT: std r3, 328(r1) 2209; BE-NEXT: bl llrintf 2210; BE-NEXT: nop 2211; BE-NEXT: fmr f1, f20 2212; BE-NEXT: std r3, 320(r1) 2213; BE-NEXT: bl llrintf 2214; BE-NEXT: nop 2215; BE-NEXT: fmr f1, f21 2216; BE-NEXT: std r3, 344(r1) 2217; BE-NEXT: bl llrintf 2218; BE-NEXT: nop 2219; BE-NEXT: fmr f1, f22 2220; BE-NEXT: std r3, 336(r1) 2221; BE-NEXT: bl llrintf 2222; BE-NEXT: nop 2223; BE-NEXT: fmr f1, f23 2224; BE-NEXT: std r3, 360(r1) 2225; BE-NEXT: bl llrintf 2226; BE-NEXT: nop 2227; BE-NEXT: fmr f1, f24 2228; BE-NEXT: std r3, 352(r1) 2229; BE-NEXT: bl llrintf 2230; BE-NEXT: nop 2231; BE-NEXT: fmr f1, f25 2232; BE-NEXT: std r3, 376(r1) 2233; BE-NEXT: bl llrintf 2234; BE-NEXT: nop 2235; BE-NEXT: fmr f1, f26 2236; BE-NEXT: std r3, 368(r1) 2237; BE-NEXT: bl llrintf 2238; BE-NEXT: nop 2239; BE-NEXT: fmr f1, f27 2240; BE-NEXT: std r3, 392(r1) 2241; BE-NEXT: bl llrintf 2242; BE-NEXT: nop 2243; BE-NEXT: fmr f1, f28 2244; BE-NEXT: std r3, 384(r1) 2245; BE-NEXT: bl llrintf 2246; BE-NEXT: nop 2247; BE-NEXT: fmr f1, f29 2248; BE-NEXT: std r3, 408(r1) 2249; BE-NEXT: bl llrintf 2250; BE-NEXT: nop 2251; BE-NEXT: fmr f1, f30 2252; BE-NEXT: std r3, 400(r1) 2253; BE-NEXT: bl llrintf 2254; BE-NEXT: nop 2255; BE-NEXT: fmr f1, f31 2256; BE-NEXT: std r3, 424(r1) 2257; BE-NEXT: bl llrintf 2258; BE-NEXT: nop 2259; BE-NEXT: fmr f1, f14 2260; BE-NEXT: std r3, 416(r1) 2261; BE-NEXT: bl llrintf 2262; BE-NEXT: nop 2263; BE-NEXT: fmr f1, f15 2264; BE-NEXT: std r3, 440(r1) 2265; BE-NEXT: bl llrintf 2266; BE-NEXT: nop 2267; BE-NEXT: fmr f1, f16 2268; BE-NEXT: std r3, 432(r1) 2269; BE-NEXT: bl llrintf 2270; BE-NEXT: nop 2271; BE-NEXT: fmr f1, f17 2272; BE-NEXT: std r3, 456(r1) 2273; BE-NEXT: bl llrintf 2274; BE-NEXT: nop 2275; BE-NEXT: fmr f1, f18 2276; BE-NEXT: std r3, 448(r1) 2277; BE-NEXT: bl llrintf 2278; BE-NEXT: nop 2279; BE-NEXT: lfs f1, 132(r1) # 4-byte Folded Reload 2280; BE-NEXT: std r3, 472(r1) 2281; BE-NEXT: bl llrintf 2282; BE-NEXT: nop 2283; BE-NEXT: lfs f1, 148(r1) # 4-byte Folded Reload 2284; BE-NEXT: std r3, 464(r1) 2285; BE-NEXT: bl llrintf 2286; BE-NEXT: nop 2287; BE-NEXT: lfs f1, 164(r1) # 4-byte Folded Reload 2288; BE-NEXT: std r3, 488(r1) 2289; BE-NEXT: bl llrintf 2290; BE-NEXT: nop 2291; BE-NEXT: lfs f1, 180(r1) # 4-byte Folded Reload 2292; BE-NEXT: std r3, 480(r1) 2293; BE-NEXT: bl llrintf 2294; BE-NEXT: nop 2295; BE-NEXT: lfs f1, 196(r1) # 4-byte Folded Reload 2296; BE-NEXT: std r3, 504(r1) 2297; BE-NEXT: bl llrintf 2298; BE-NEXT: nop 2299; BE-NEXT: lfs f1, 212(r1) # 4-byte Folded Reload 2300; BE-NEXT: std r3, 496(r1) 2301; BE-NEXT: bl llrintf 2302; BE-NEXT: nop 2303; BE-NEXT: lfs f1, 228(r1) # 4-byte Folded Reload 2304; BE-NEXT: std r3, 520(r1) 2305; BE-NEXT: bl llrintf 2306; BE-NEXT: nop 2307; BE-NEXT: lfs f1, 244(r1) # 4-byte Folded Reload 2308; BE-NEXT: std r3, 512(r1) 2309; BE-NEXT: bl llrintf 2310; BE-NEXT: nop 2311; BE-NEXT: lfs f1, 260(r1) # 4-byte Folded Reload 2312; BE-NEXT: std r3, 536(r1) 2313; BE-NEXT: bl llrintf 2314; BE-NEXT: nop 2315; BE-NEXT: lfs f1, 276(r1) # 4-byte Folded Reload 2316; BE-NEXT: std r3, 528(r1) 2317; BE-NEXT: bl llrintf 2318; BE-NEXT: nop 2319; BE-NEXT: lfs f1, 292(r1) # 4-byte Folded Reload 2320; BE-NEXT: std r3, 552(r1) 2321; BE-NEXT: bl llrintf 2322; BE-NEXT: nop 2323; BE-NEXT: lfs f1, 312(r1) # 4-byte Folded Reload 2324; BE-NEXT: std r3, 544(r1) 2325; BE-NEXT: bl llrintf 2326; BE-NEXT: nop 2327; BE-NEXT: lfs f1, 316(r1) # 4-byte Folded Reload 2328; BE-NEXT: std r3, 568(r1) 2329; BE-NEXT: bl llrintf 2330; BE-NEXT: nop 2331; BE-NEXT: std r3, 560(r1) 2332; BE-NEXT: addi r3, r1, 320 2333; BE-NEXT: lxvd2x vs0, 0, r3 2334; BE-NEXT: addi r3, r1, 336 2335; BE-NEXT: lxvd2x vs1, 0, r3 2336; BE-NEXT: addi r3, r1, 352 2337; BE-NEXT: lxvd2x vs2, 0, r3 2338; BE-NEXT: addi r3, r1, 368 2339; BE-NEXT: lxvd2x vs3, 0, r3 2340; BE-NEXT: addi r3, r1, 384 2341; BE-NEXT: lxvd2x vs4, 0, r3 2342; BE-NEXT: addi r3, r1, 400 2343; BE-NEXT: lxvd2x vs5, 0, r3 2344; BE-NEXT: addi r3, r1, 416 2345; BE-NEXT: lxvd2x vs6, 0, r3 2346; BE-NEXT: addi r3, r1, 432 2347; BE-NEXT: lxvd2x vs7, 0, r3 2348; BE-NEXT: addi r3, r1, 448 2349; BE-NEXT: lxvd2x vs8, 0, r3 2350; BE-NEXT: addi r3, r1, 464 2351; BE-NEXT: lxvd2x vs9, 0, r3 2352; BE-NEXT: addi r3, r1, 480 2353; BE-NEXT: lxvd2x vs10, 0, r3 2354; BE-NEXT: addi r3, r1, 496 2355; BE-NEXT: lxvd2x vs11, 0, r3 2356; BE-NEXT: addi r3, r1, 512 2357; BE-NEXT: lxvd2x vs12, 0, r3 2358; BE-NEXT: addi r3, r1, 528 2359; BE-NEXT: lxvd2x vs13, 0, r3 2360; BE-NEXT: addi r3, r1, 544 2361; BE-NEXT: lxvd2x v2, 0, r3 2362; BE-NEXT: addi r3, r1, 560 2363; BE-NEXT: lxvd2x v3, 0, r3 2364; BE-NEXT: li r3, 240 2365; BE-NEXT: stxvd2x v3, r30, r3 2366; BE-NEXT: li r3, 224 2367; BE-NEXT: stxvd2x v2, r30, r3 2368; BE-NEXT: li r3, 208 2369; BE-NEXT: stxvd2x vs13, r30, r3 2370; BE-NEXT: li r3, 192 2371; BE-NEXT: stxvd2x vs12, r30, r3 2372; BE-NEXT: li r3, 176 2373; BE-NEXT: stxvd2x vs11, r30, r3 2374; BE-NEXT: li r3, 160 2375; BE-NEXT: stxvd2x vs10, r30, r3 2376; BE-NEXT: li r3, 144 2377; BE-NEXT: stxvd2x vs9, r30, r3 2378; BE-NEXT: li r3, 128 2379; BE-NEXT: stxvd2x vs8, r30, r3 2380; BE-NEXT: li r3, 112 2381; BE-NEXT: stxvd2x vs7, r30, r3 2382; BE-NEXT: li r3, 96 2383; BE-NEXT: stxvd2x vs6, r30, r3 2384; BE-NEXT: li r3, 80 2385; BE-NEXT: stxvd2x vs5, r30, r3 2386; BE-NEXT: li r3, 64 2387; BE-NEXT: stxvd2x vs4, r30, r3 2388; BE-NEXT: li r3, 48 2389; BE-NEXT: stxvd2x vs3, r30, r3 2390; BE-NEXT: li r3, 32 2391; BE-NEXT: stxvd2x vs2, r30, r3 2392; BE-NEXT: li r3, 16 2393; BE-NEXT: stxvd2x vs1, r30, r3 2394; BE-NEXT: stxvd2x vs0, 0, r30 2395; BE-NEXT: lfd f31, 856(r1) # 8-byte Folded Reload 2396; BE-NEXT: lfd f30, 848(r1) # 8-byte Folded Reload 2397; BE-NEXT: lfd f29, 840(r1) # 8-byte Folded Reload 2398; BE-NEXT: lfd f28, 832(r1) # 8-byte Folded Reload 2399; BE-NEXT: lfd f27, 824(r1) # 8-byte Folded Reload 2400; BE-NEXT: lfd f26, 816(r1) # 8-byte Folded Reload 2401; BE-NEXT: lfd f25, 808(r1) # 8-byte Folded Reload 2402; BE-NEXT: lfd f24, 800(r1) # 8-byte Folded Reload 2403; BE-NEXT: lfd f23, 792(r1) # 8-byte Folded Reload 2404; BE-NEXT: lfd f22, 784(r1) # 8-byte Folded Reload 2405; BE-NEXT: lfd f21, 776(r1) # 8-byte Folded Reload 2406; BE-NEXT: lfd f20, 768(r1) # 8-byte Folded Reload 2407; BE-NEXT: lfd f19, 760(r1) # 8-byte Folded Reload 2408; BE-NEXT: lfd f18, 752(r1) # 8-byte Folded Reload 2409; BE-NEXT: lfd f17, 744(r1) # 8-byte Folded Reload 2410; BE-NEXT: lfd f16, 736(r1) # 8-byte Folded Reload 2411; BE-NEXT: lfd f15, 728(r1) # 8-byte Folded Reload 2412; BE-NEXT: lfd f14, 720(r1) # 8-byte Folded Reload 2413; BE-NEXT: ld r31, 712(r1) # 8-byte Folded Reload 2414; BE-NEXT: ld r30, 704(r1) # 8-byte Folded Reload 2415; BE-NEXT: ld r29, 696(r1) # 8-byte Folded Reload 2416; BE-NEXT: ld r28, 688(r1) # 8-byte Folded Reload 2417; BE-NEXT: ld r27, 680(r1) # 8-byte Folded Reload 2418; BE-NEXT: ld r26, 672(r1) # 8-byte Folded Reload 2419; BE-NEXT: ld r25, 664(r1) # 8-byte Folded Reload 2420; BE-NEXT: ld r24, 656(r1) # 8-byte Folded Reload 2421; BE-NEXT: ld r23, 648(r1) # 8-byte Folded Reload 2422; BE-NEXT: ld r22, 640(r1) # 8-byte Folded Reload 2423; BE-NEXT: ld r21, 632(r1) # 8-byte Folded Reload 2424; BE-NEXT: ld r20, 624(r1) # 8-byte Folded Reload 2425; BE-NEXT: ld r19, 616(r1) # 8-byte Folded Reload 2426; BE-NEXT: ld r18, 608(r1) # 8-byte Folded Reload 2427; BE-NEXT: ld r17, 600(r1) # 8-byte Folded Reload 2428; BE-NEXT: ld r16, 592(r1) # 8-byte Folded Reload 2429; BE-NEXT: ld r15, 584(r1) # 8-byte Folded Reload 2430; BE-NEXT: ld r14, 576(r1) # 8-byte Folded Reload 2431; BE-NEXT: addi r1, r1, 864 2432; BE-NEXT: ld r0, 16(r1) 2433; BE-NEXT: mtlr r0 2434; BE-NEXT: blr 2435; 2436; CHECK-LABEL: llrint_v32i64_v32f16: 2437; CHECK: # %bb.0: 2438; CHECK-NEXT: mflr r0 2439; CHECK-NEXT: stdu r1, -688(r1) 2440; CHECK-NEXT: std r0, 704(r1) 2441; CHECK-NEXT: .cfi_def_cfa_offset 688 2442; CHECK-NEXT: .cfi_offset lr, 16 2443; CHECK-NEXT: .cfi_offset r14, -288 2444; CHECK-NEXT: .cfi_offset r15, -280 2445; CHECK-NEXT: .cfi_offset r16, -272 2446; CHECK-NEXT: .cfi_offset r17, -264 2447; CHECK-NEXT: .cfi_offset r18, -256 2448; CHECK-NEXT: .cfi_offset r19, -248 2449; CHECK-NEXT: .cfi_offset r20, -240 2450; CHECK-NEXT: .cfi_offset r21, -232 2451; CHECK-NEXT: .cfi_offset r22, -224 2452; CHECK-NEXT: .cfi_offset r23, -216 2453; CHECK-NEXT: .cfi_offset r24, -208 2454; CHECK-NEXT: .cfi_offset r25, -200 2455; CHECK-NEXT: .cfi_offset r26, -192 2456; CHECK-NEXT: .cfi_offset r27, -184 2457; CHECK-NEXT: .cfi_offset r28, -176 2458; CHECK-NEXT: .cfi_offset r29, -168 2459; CHECK-NEXT: .cfi_offset r30, -160 2460; CHECK-NEXT: .cfi_offset r31, -152 2461; CHECK-NEXT: .cfi_offset f14, -144 2462; CHECK-NEXT: .cfi_offset f15, -136 2463; CHECK-NEXT: .cfi_offset f16, -128 2464; CHECK-NEXT: .cfi_offset f17, -120 2465; CHECK-NEXT: .cfi_offset f18, -112 2466; CHECK-NEXT: .cfi_offset f19, -104 2467; CHECK-NEXT: .cfi_offset f20, -96 2468; CHECK-NEXT: .cfi_offset f21, -88 2469; CHECK-NEXT: .cfi_offset f22, -80 2470; CHECK-NEXT: .cfi_offset f23, -72 2471; CHECK-NEXT: .cfi_offset f24, -64 2472; CHECK-NEXT: .cfi_offset f25, -56 2473; CHECK-NEXT: .cfi_offset f26, -48 2474; CHECK-NEXT: .cfi_offset f27, -40 2475; CHECK-NEXT: .cfi_offset f28, -32 2476; CHECK-NEXT: .cfi_offset f29, -24 2477; CHECK-NEXT: .cfi_offset f30, -16 2478; CHECK-NEXT: .cfi_offset f31, -8 2479; CHECK-NEXT: .cfi_offset v20, -480 2480; CHECK-NEXT: .cfi_offset v21, -464 2481; CHECK-NEXT: .cfi_offset v22, -448 2482; CHECK-NEXT: .cfi_offset v23, -432 2483; CHECK-NEXT: .cfi_offset v24, -416 2484; CHECK-NEXT: .cfi_offset v25, -400 2485; CHECK-NEXT: .cfi_offset v26, -384 2486; CHECK-NEXT: .cfi_offset v27, -368 2487; CHECK-NEXT: .cfi_offset v28, -352 2488; CHECK-NEXT: .cfi_offset v29, -336 2489; CHECK-NEXT: .cfi_offset v30, -320 2490; CHECK-NEXT: .cfi_offset v31, -304 2491; CHECK-NEXT: li r4, 208 2492; CHECK-NEXT: std r14, 400(r1) # 8-byte Folded Spill 2493; CHECK-NEXT: std r15, 408(r1) # 8-byte Folded Spill 2494; CHECK-NEXT: std r16, 416(r1) # 8-byte Folded Spill 2495; CHECK-NEXT: std r17, 424(r1) # 8-byte Folded Spill 2496; CHECK-NEXT: std r18, 432(r1) # 8-byte Folded Spill 2497; CHECK-NEXT: std r19, 440(r1) # 8-byte Folded Spill 2498; CHECK-NEXT: std r20, 448(r1) # 8-byte Folded Spill 2499; CHECK-NEXT: stvx v20, r1, r4 # 16-byte Folded Spill 2500; CHECK-NEXT: li r4, 224 2501; CHECK-NEXT: std r21, 456(r1) # 8-byte Folded Spill 2502; CHECK-NEXT: std r22, 464(r1) # 8-byte Folded Spill 2503; CHECK-NEXT: std r23, 472(r1) # 8-byte Folded Spill 2504; CHECK-NEXT: std r24, 480(r1) # 8-byte Folded Spill 2505; CHECK-NEXT: std r25, 488(r1) # 8-byte Folded Spill 2506; CHECK-NEXT: std r26, 496(r1) # 8-byte Folded Spill 2507; CHECK-NEXT: stvx v21, r1, r4 # 16-byte Folded Spill 2508; CHECK-NEXT: li r4, 240 2509; CHECK-NEXT: std r27, 504(r1) # 8-byte Folded Spill 2510; CHECK-NEXT: std r28, 512(r1) # 8-byte Folded Spill 2511; CHECK-NEXT: std r29, 520(r1) # 8-byte Folded Spill 2512; CHECK-NEXT: std r30, 528(r1) # 8-byte Folded Spill 2513; CHECK-NEXT: mr r30, r3 2514; CHECK-NEXT: std r31, 536(r1) # 8-byte Folded Spill 2515; CHECK-NEXT: stvx v22, r1, r4 # 16-byte Folded Spill 2516; CHECK-NEXT: li r4, 256 2517; CHECK-NEXT: stfd f14, 544(r1) # 8-byte Folded Spill 2518; CHECK-NEXT: stfd f15, 552(r1) # 8-byte Folded Spill 2519; CHECK-NEXT: stfd f16, 560(r1) # 8-byte Folded Spill 2520; CHECK-NEXT: stfd f17, 568(r1) # 8-byte Folded Spill 2521; CHECK-NEXT: stfd f18, 576(r1) # 8-byte Folded Spill 2522; CHECK-NEXT: stfd f19, 584(r1) # 8-byte Folded Spill 2523; CHECK-NEXT: stvx v23, r1, r4 # 16-byte Folded Spill 2524; CHECK-NEXT: li r4, 272 2525; CHECK-NEXT: stfd f20, 592(r1) # 8-byte Folded Spill 2526; CHECK-NEXT: fmr f20, f2 2527; CHECK-NEXT: stfd f21, 600(r1) # 8-byte Folded Spill 2528; CHECK-NEXT: fmr f21, f3 2529; CHECK-NEXT: stfd f22, 608(r1) # 8-byte Folded Spill 2530; CHECK-NEXT: fmr f22, f4 2531; CHECK-NEXT: stvx v24, r1, r4 # 16-byte Folded Spill 2532; CHECK-NEXT: li r4, 288 2533; CHECK-NEXT: stfd f23, 616(r1) # 8-byte Folded Spill 2534; CHECK-NEXT: fmr f23, f5 2535; CHECK-NEXT: stfd f24, 624(r1) # 8-byte Folded Spill 2536; CHECK-NEXT: fmr f24, f6 2537; CHECK-NEXT: stfd f25, 632(r1) # 8-byte Folded Spill 2538; CHECK-NEXT: fmr f25, f7 2539; CHECK-NEXT: stvx v25, r1, r4 # 16-byte Folded Spill 2540; CHECK-NEXT: li r4, 304 2541; CHECK-NEXT: stfd f26, 640(r1) # 8-byte Folded Spill 2542; CHECK-NEXT: fmr f26, f8 2543; CHECK-NEXT: stfd f27, 648(r1) # 8-byte Folded Spill 2544; CHECK-NEXT: fmr f27, f9 2545; CHECK-NEXT: stfd f28, 656(r1) # 8-byte Folded Spill 2546; CHECK-NEXT: fmr f28, f10 2547; CHECK-NEXT: stvx v26, r1, r4 # 16-byte Folded Spill 2548; CHECK-NEXT: li r4, 320 2549; CHECK-NEXT: stfd f29, 664(r1) # 8-byte Folded Spill 2550; CHECK-NEXT: fmr f29, f11 2551; CHECK-NEXT: stfd f30, 672(r1) # 8-byte Folded Spill 2552; CHECK-NEXT: fmr f30, f12 2553; CHECK-NEXT: stfd f31, 680(r1) # 8-byte Folded Spill 2554; CHECK-NEXT: fmr f31, f13 2555; CHECK-NEXT: stvx v27, r1, r4 # 16-byte Folded Spill 2556; CHECK-NEXT: li r4, 336 2557; CHECK-NEXT: stvx v28, r1, r4 # 16-byte Folded Spill 2558; CHECK-NEXT: li r4, 352 2559; CHECK-NEXT: stvx v29, r1, r4 # 16-byte Folded Spill 2560; CHECK-NEXT: li r4, 368 2561; CHECK-NEXT: stvx v30, r1, r4 # 16-byte Folded Spill 2562; CHECK-NEXT: li r4, 384 2563; CHECK-NEXT: stvx v31, r1, r4 # 16-byte Folded Spill 2564; CHECK-NEXT: bl __gnu_f2h_ieee 2565; CHECK-NEXT: nop 2566; CHECK-NEXT: fmr f1, f20 2567; CHECK-NEXT: std r3, 176(r1) # 8-byte Folded Spill 2568; CHECK-NEXT: bl __gnu_f2h_ieee 2569; CHECK-NEXT: nop 2570; CHECK-NEXT: fmr f1, f21 2571; CHECK-NEXT: std r3, 160(r1) # 8-byte Folded Spill 2572; CHECK-NEXT: bl __gnu_f2h_ieee 2573; CHECK-NEXT: nop 2574; CHECK-NEXT: fmr f1, f22 2575; CHECK-NEXT: std r3, 144(r1) # 8-byte Folded Spill 2576; CHECK-NEXT: bl __gnu_f2h_ieee 2577; CHECK-NEXT: nop 2578; CHECK-NEXT: fmr f1, f23 2579; CHECK-NEXT: std r3, 128(r1) # 8-byte Folded Spill 2580; CHECK-NEXT: bl __gnu_f2h_ieee 2581; CHECK-NEXT: nop 2582; CHECK-NEXT: fmr f1, f24 2583; CHECK-NEXT: std r3, 120(r1) # 8-byte Folded Spill 2584; CHECK-NEXT: bl __gnu_f2h_ieee 2585; CHECK-NEXT: nop 2586; CHECK-NEXT: fmr f1, f25 2587; CHECK-NEXT: std r3, 112(r1) # 8-byte Folded Spill 2588; CHECK-NEXT: bl __gnu_f2h_ieee 2589; CHECK-NEXT: nop 2590; CHECK-NEXT: fmr f1, f26 2591; CHECK-NEXT: std r3, 104(r1) # 8-byte Folded Spill 2592; CHECK-NEXT: bl __gnu_f2h_ieee 2593; CHECK-NEXT: nop 2594; CHECK-NEXT: fmr f1, f27 2595; CHECK-NEXT: std r3, 96(r1) # 8-byte Folded Spill 2596; CHECK-NEXT: bl __gnu_f2h_ieee 2597; CHECK-NEXT: nop 2598; CHECK-NEXT: fmr f1, f28 2599; CHECK-NEXT: std r3, 88(r1) # 8-byte Folded Spill 2600; CHECK-NEXT: bl __gnu_f2h_ieee 2601; CHECK-NEXT: nop 2602; CHECK-NEXT: fmr f1, f29 2603; CHECK-NEXT: std r3, 80(r1) # 8-byte Folded Spill 2604; CHECK-NEXT: bl __gnu_f2h_ieee 2605; CHECK-NEXT: nop 2606; CHECK-NEXT: fmr f1, f30 2607; CHECK-NEXT: std r3, 72(r1) # 8-byte Folded Spill 2608; CHECK-NEXT: bl __gnu_f2h_ieee 2609; CHECK-NEXT: nop 2610; CHECK-NEXT: fmr f1, f31 2611; CHECK-NEXT: std r3, 64(r1) # 8-byte Folded Spill 2612; CHECK-NEXT: bl __gnu_f2h_ieee 2613; CHECK-NEXT: nop 2614; CHECK-NEXT: lfs f1, 832(r1) 2615; CHECK-NEXT: std r3, 56(r1) # 8-byte Folded Spill 2616; CHECK-NEXT: bl __gnu_f2h_ieee 2617; CHECK-NEXT: nop 2618; CHECK-NEXT: lfs f1, 840(r1) 2619; CHECK-NEXT: std r3, 48(r1) # 8-byte Folded Spill 2620; CHECK-NEXT: bl __gnu_f2h_ieee 2621; CHECK-NEXT: nop 2622; CHECK-NEXT: lfs f1, 848(r1) 2623; CHECK-NEXT: mr r15, r3 2624; CHECK-NEXT: bl __gnu_f2h_ieee 2625; CHECK-NEXT: nop 2626; CHECK-NEXT: lfs f1, 856(r1) 2627; CHECK-NEXT: mr r14, r3 2628; CHECK-NEXT: bl __gnu_f2h_ieee 2629; CHECK-NEXT: nop 2630; CHECK-NEXT: lfs f1, 864(r1) 2631; CHECK-NEXT: mr r31, r3 2632; CHECK-NEXT: bl __gnu_f2h_ieee 2633; CHECK-NEXT: nop 2634; CHECK-NEXT: lfs f1, 872(r1) 2635; CHECK-NEXT: mr r29, r3 2636; CHECK-NEXT: bl __gnu_f2h_ieee 2637; CHECK-NEXT: nop 2638; CHECK-NEXT: lfs f1, 880(r1) 2639; CHECK-NEXT: mr r28, r3 2640; CHECK-NEXT: bl __gnu_f2h_ieee 2641; CHECK-NEXT: nop 2642; CHECK-NEXT: lfs f1, 888(r1) 2643; CHECK-NEXT: mr r27, r3 2644; CHECK-NEXT: bl __gnu_f2h_ieee 2645; CHECK-NEXT: nop 2646; CHECK-NEXT: lfs f1, 896(r1) 2647; CHECK-NEXT: mr r26, r3 2648; CHECK-NEXT: bl __gnu_f2h_ieee 2649; CHECK-NEXT: nop 2650; CHECK-NEXT: lfs f1, 904(r1) 2651; CHECK-NEXT: mr r25, r3 2652; CHECK-NEXT: bl __gnu_f2h_ieee 2653; CHECK-NEXT: nop 2654; CHECK-NEXT: lfs f1, 912(r1) 2655; CHECK-NEXT: mr r24, r3 2656; CHECK-NEXT: bl __gnu_f2h_ieee 2657; CHECK-NEXT: nop 2658; CHECK-NEXT: lfs f1, 920(r1) 2659; CHECK-NEXT: mr r23, r3 2660; CHECK-NEXT: bl __gnu_f2h_ieee 2661; CHECK-NEXT: nop 2662; CHECK-NEXT: lfs f1, 928(r1) 2663; CHECK-NEXT: mr r22, r3 2664; CHECK-NEXT: bl __gnu_f2h_ieee 2665; CHECK-NEXT: nop 2666; CHECK-NEXT: lfs f1, 936(r1) 2667; CHECK-NEXT: mr r21, r3 2668; CHECK-NEXT: bl __gnu_f2h_ieee 2669; CHECK-NEXT: nop 2670; CHECK-NEXT: lfs f1, 944(r1) 2671; CHECK-NEXT: mr r20, r3 2672; CHECK-NEXT: bl __gnu_f2h_ieee 2673; CHECK-NEXT: nop 2674; CHECK-NEXT: lfs f1, 952(r1) 2675; CHECK-NEXT: mr r19, r3 2676; CHECK-NEXT: bl __gnu_f2h_ieee 2677; CHECK-NEXT: nop 2678; CHECK-NEXT: lfs f1, 960(r1) 2679; CHECK-NEXT: mr r18, r3 2680; CHECK-NEXT: bl __gnu_f2h_ieee 2681; CHECK-NEXT: nop 2682; CHECK-NEXT: lfs f1, 968(r1) 2683; CHECK-NEXT: mr r17, r3 2684; CHECK-NEXT: bl __gnu_f2h_ieee 2685; CHECK-NEXT: nop 2686; CHECK-NEXT: lfs f1, 976(r1) 2687; CHECK-NEXT: mr r16, r3 2688; CHECK-NEXT: bl __gnu_f2h_ieee 2689; CHECK-NEXT: nop 2690; CHECK-NEXT: clrldi r3, r3, 48 2691; CHECK-NEXT: bl __gnu_h2f_ieee 2692; CHECK-NEXT: nop 2693; CHECK-NEXT: li r3, 204 2694; CHECK-NEXT: stxsspx f1, r1, r3 # 4-byte Folded Spill 2695; CHECK-NEXT: clrldi r3, r16, 48 2696; CHECK-NEXT: bl __gnu_h2f_ieee 2697; CHECK-NEXT: nop 2698; CHECK-NEXT: li r3, 200 2699; CHECK-NEXT: stxsspx f1, r1, r3 # 4-byte Folded Spill 2700; CHECK-NEXT: clrldi r3, r17, 48 2701; CHECK-NEXT: bl __gnu_h2f_ieee 2702; CHECK-NEXT: nop 2703; CHECK-NEXT: clrldi r3, r18, 48 2704; CHECK-NEXT: fmr f29, f1 2705; CHECK-NEXT: bl __gnu_h2f_ieee 2706; CHECK-NEXT: nop 2707; CHECK-NEXT: clrldi r3, r19, 48 2708; CHECK-NEXT: fmr f28, f1 2709; CHECK-NEXT: bl __gnu_h2f_ieee 2710; CHECK-NEXT: nop 2711; CHECK-NEXT: clrldi r3, r20, 48 2712; CHECK-NEXT: fmr f27, f1 2713; CHECK-NEXT: bl __gnu_h2f_ieee 2714; CHECK-NEXT: nop 2715; CHECK-NEXT: clrldi r3, r21, 48 2716; CHECK-NEXT: fmr f26, f1 2717; CHECK-NEXT: bl __gnu_h2f_ieee 2718; CHECK-NEXT: nop 2719; CHECK-NEXT: clrldi r3, r22, 48 2720; CHECK-NEXT: fmr f25, f1 2721; CHECK-NEXT: bl __gnu_h2f_ieee 2722; CHECK-NEXT: nop 2723; CHECK-NEXT: clrldi r3, r23, 48 2724; CHECK-NEXT: fmr f24, f1 2725; CHECK-NEXT: bl __gnu_h2f_ieee 2726; CHECK-NEXT: nop 2727; CHECK-NEXT: clrldi r3, r24, 48 2728; CHECK-NEXT: fmr f23, f1 2729; CHECK-NEXT: bl __gnu_h2f_ieee 2730; CHECK-NEXT: nop 2731; CHECK-NEXT: clrldi r3, r25, 48 2732; CHECK-NEXT: fmr f22, f1 2733; CHECK-NEXT: bl __gnu_h2f_ieee 2734; CHECK-NEXT: nop 2735; CHECK-NEXT: clrldi r3, r26, 48 2736; CHECK-NEXT: fmr f21, f1 2737; CHECK-NEXT: bl __gnu_h2f_ieee 2738; CHECK-NEXT: nop 2739; CHECK-NEXT: clrldi r3, r27, 48 2740; CHECK-NEXT: fmr f20, f1 2741; CHECK-NEXT: bl __gnu_h2f_ieee 2742; CHECK-NEXT: nop 2743; CHECK-NEXT: clrldi r3, r28, 48 2744; CHECK-NEXT: fmr f19, f1 2745; CHECK-NEXT: bl __gnu_h2f_ieee 2746; CHECK-NEXT: nop 2747; CHECK-NEXT: clrldi r3, r29, 48 2748; CHECK-NEXT: fmr f18, f1 2749; CHECK-NEXT: bl __gnu_h2f_ieee 2750; CHECK-NEXT: nop 2751; CHECK-NEXT: clrldi r3, r31, 48 2752; CHECK-NEXT: fmr f17, f1 2753; CHECK-NEXT: bl __gnu_h2f_ieee 2754; CHECK-NEXT: nop 2755; CHECK-NEXT: clrldi r3, r14, 48 2756; CHECK-NEXT: fmr f16, f1 2757; CHECK-NEXT: bl __gnu_h2f_ieee 2758; CHECK-NEXT: nop 2759; CHECK-NEXT: clrldi r3, r15, 48 2760; CHECK-NEXT: fmr f15, f1 2761; CHECK-NEXT: bl __gnu_h2f_ieee 2762; CHECK-NEXT: nop 2763; CHECK-NEXT: ld r3, 48(r1) # 8-byte Folded Reload 2764; CHECK-NEXT: fmr f14, f1 2765; CHECK-NEXT: clrldi r3, r3, 48 2766; CHECK-NEXT: bl __gnu_h2f_ieee 2767; CHECK-NEXT: nop 2768; CHECK-NEXT: ld r3, 56(r1) # 8-byte Folded Reload 2769; CHECK-NEXT: fmr f30, f1 2770; CHECK-NEXT: clrldi r3, r3, 48 2771; CHECK-NEXT: bl __gnu_h2f_ieee 2772; CHECK-NEXT: nop 2773; CHECK-NEXT: ld r3, 64(r1) # 8-byte Folded Reload 2774; CHECK-NEXT: xxlor v30, f1, f1 2775; CHECK-NEXT: clrldi r3, r3, 48 2776; CHECK-NEXT: bl __gnu_h2f_ieee 2777; CHECK-NEXT: nop 2778; CHECK-NEXT: ld r3, 72(r1) # 8-byte Folded Reload 2779; CHECK-NEXT: xxlor v29, f1, f1 2780; CHECK-NEXT: clrldi r3, r3, 48 2781; CHECK-NEXT: bl __gnu_h2f_ieee 2782; CHECK-NEXT: nop 2783; CHECK-NEXT: ld r3, 80(r1) # 8-byte Folded Reload 2784; CHECK-NEXT: xxlor v28, f1, f1 2785; CHECK-NEXT: clrldi r3, r3, 48 2786; CHECK-NEXT: bl __gnu_h2f_ieee 2787; CHECK-NEXT: nop 2788; CHECK-NEXT: ld r3, 88(r1) # 8-byte Folded Reload 2789; CHECK-NEXT: xxlor v27, f1, f1 2790; CHECK-NEXT: clrldi r3, r3, 48 2791; CHECK-NEXT: bl __gnu_h2f_ieee 2792; CHECK-NEXT: nop 2793; CHECK-NEXT: ld r3, 96(r1) # 8-byte Folded Reload 2794; CHECK-NEXT: xxlor v26, f1, f1 2795; CHECK-NEXT: clrldi r3, r3, 48 2796; CHECK-NEXT: bl __gnu_h2f_ieee 2797; CHECK-NEXT: nop 2798; CHECK-NEXT: ld r3, 104(r1) # 8-byte Folded Reload 2799; CHECK-NEXT: xxlor v25, f1, f1 2800; CHECK-NEXT: clrldi r3, r3, 48 2801; CHECK-NEXT: bl __gnu_h2f_ieee 2802; CHECK-NEXT: nop 2803; CHECK-NEXT: ld r3, 112(r1) # 8-byte Folded Reload 2804; CHECK-NEXT: xxlor v24, f1, f1 2805; CHECK-NEXT: clrldi r3, r3, 48 2806; CHECK-NEXT: bl __gnu_h2f_ieee 2807; CHECK-NEXT: nop 2808; CHECK-NEXT: ld r3, 120(r1) # 8-byte Folded Reload 2809; CHECK-NEXT: xxlor v23, f1, f1 2810; CHECK-NEXT: clrldi r3, r3, 48 2811; CHECK-NEXT: bl __gnu_h2f_ieee 2812; CHECK-NEXT: nop 2813; CHECK-NEXT: ld r3, 128(r1) # 8-byte Folded Reload 2814; CHECK-NEXT: xxlor v22, f1, f1 2815; CHECK-NEXT: clrldi r3, r3, 48 2816; CHECK-NEXT: bl __gnu_h2f_ieee 2817; CHECK-NEXT: nop 2818; CHECK-NEXT: ld r3, 144(r1) # 8-byte Folded Reload 2819; CHECK-NEXT: xxlor v21, f1, f1 2820; CHECK-NEXT: clrldi r3, r3, 48 2821; CHECK-NEXT: bl __gnu_h2f_ieee 2822; CHECK-NEXT: nop 2823; CHECK-NEXT: ld r3, 160(r1) # 8-byte Folded Reload 2824; CHECK-NEXT: xxlor v20, f1, f1 2825; CHECK-NEXT: clrldi r3, r3, 48 2826; CHECK-NEXT: bl __gnu_h2f_ieee 2827; CHECK-NEXT: nop 2828; CHECK-NEXT: ld r3, 176(r1) # 8-byte Folded Reload 2829; CHECK-NEXT: fmr f31, f1 2830; CHECK-NEXT: clrldi r3, r3, 48 2831; CHECK-NEXT: bl __gnu_h2f_ieee 2832; CHECK-NEXT: nop 2833; CHECK-NEXT: bl llrintf 2834; CHECK-NEXT: nop 2835; CHECK-NEXT: fmr f1, f31 2836; CHECK-NEXT: mtvsrd v31, r3 2837; CHECK-NEXT: bl llrintf 2838; CHECK-NEXT: nop 2839; CHECK-NEXT: mtfprd f0, r3 2840; CHECK-NEXT: li r3, 176 2841; CHECK-NEXT: xxlor f1, v20, v20 2842; CHECK-NEXT: xxmrghd vs0, vs0, v31 2843; CHECK-NEXT: stxvd2x vs0, r1, r3 # 16-byte Folded Spill 2844; CHECK-NEXT: bl llrintf 2845; CHECK-NEXT: nop 2846; CHECK-NEXT: xxlor f1, v21, v21 2847; CHECK-NEXT: mtvsrd v31, r3 2848; CHECK-NEXT: bl llrintf 2849; CHECK-NEXT: nop 2850; CHECK-NEXT: mtfprd f0, r3 2851; CHECK-NEXT: li r3, 160 2852; CHECK-NEXT: xxlor f1, v22, v22 2853; CHECK-NEXT: xxmrghd vs0, vs0, v31 2854; CHECK-NEXT: stxvd2x vs0, r1, r3 # 16-byte Folded Spill 2855; CHECK-NEXT: bl llrintf 2856; CHECK-NEXT: nop 2857; CHECK-NEXT: xxlor f1, v23, v23 2858; CHECK-NEXT: mtvsrd v31, r3 2859; CHECK-NEXT: bl llrintf 2860; CHECK-NEXT: nop 2861; CHECK-NEXT: mtfprd f0, r3 2862; CHECK-NEXT: li r3, 144 2863; CHECK-NEXT: xxlor f1, v24, v24 2864; CHECK-NEXT: xxmrghd vs0, vs0, v31 2865; CHECK-NEXT: stxvd2x vs0, r1, r3 # 16-byte Folded Spill 2866; CHECK-NEXT: bl llrintf 2867; CHECK-NEXT: nop 2868; CHECK-NEXT: xxlor f1, v25, v25 2869; CHECK-NEXT: mtvsrd v31, r3 2870; CHECK-NEXT: bl llrintf 2871; CHECK-NEXT: nop 2872; CHECK-NEXT: mtfprd f0, r3 2873; CHECK-NEXT: li r3, 128 2874; CHECK-NEXT: xxlor f1, v26, v26 2875; CHECK-NEXT: xxmrghd vs0, vs0, v31 2876; CHECK-NEXT: stxvd2x vs0, r1, r3 # 16-byte Folded Spill 2877; CHECK-NEXT: bl llrintf 2878; CHECK-NEXT: nop 2879; CHECK-NEXT: xxlor f1, v27, v27 2880; CHECK-NEXT: mtvsrd v31, r3 2881; CHECK-NEXT: bl llrintf 2882; CHECK-NEXT: nop 2883; CHECK-NEXT: mtfprd f0, r3 2884; CHECK-NEXT: xxlor f1, v28, v28 2885; CHECK-NEXT: xxmrghd v27, vs0, v31 2886; CHECK-NEXT: bl llrintf 2887; CHECK-NEXT: nop 2888; CHECK-NEXT: xxlor f1, v29, v29 2889; CHECK-NEXT: mtvsrd v31, r3 2890; CHECK-NEXT: bl llrintf 2891; CHECK-NEXT: nop 2892; CHECK-NEXT: mtfprd f0, r3 2893; CHECK-NEXT: xxlor f1, v30, v30 2894; CHECK-NEXT: xxmrghd v29, vs0, v31 2895; CHECK-NEXT: bl llrintf 2896; CHECK-NEXT: nop 2897; CHECK-NEXT: fmr f1, f30 2898; CHECK-NEXT: mtvsrd v31, r3 2899; CHECK-NEXT: bl llrintf 2900; CHECK-NEXT: nop 2901; CHECK-NEXT: fmr f1, f14 2902; CHECK-NEXT: mtfprd f0, r3 2903; CHECK-NEXT: xxmrghd v31, vs0, v31 2904; CHECK-NEXT: bl llrintf 2905; CHECK-NEXT: nop 2906; CHECK-NEXT: fmr f1, f15 2907; CHECK-NEXT: mtvsrd v30, r3 2908; CHECK-NEXT: bl llrintf 2909; CHECK-NEXT: nop 2910; CHECK-NEXT: fmr f1, f16 2911; CHECK-NEXT: mtfprd f0, r3 2912; CHECK-NEXT: xxmrghd v30, vs0, v30 2913; CHECK-NEXT: bl llrintf 2914; CHECK-NEXT: nop 2915; CHECK-NEXT: fmr f1, f17 2916; CHECK-NEXT: mtvsrd v28, r3 2917; CHECK-NEXT: bl llrintf 2918; CHECK-NEXT: nop 2919; CHECK-NEXT: fmr f1, f18 2920; CHECK-NEXT: mtfprd f0, r3 2921; CHECK-NEXT: xxmrghd v28, vs0, v28 2922; CHECK-NEXT: bl llrintf 2923; CHECK-NEXT: nop 2924; CHECK-NEXT: fmr f1, f19 2925; CHECK-NEXT: mtvsrd v26, r3 2926; CHECK-NEXT: bl llrintf 2927; CHECK-NEXT: nop 2928; CHECK-NEXT: fmr f1, f20 2929; CHECK-NEXT: mtfprd f0, r3 2930; CHECK-NEXT: xxmrghd v26, vs0, v26 2931; CHECK-NEXT: bl llrintf 2932; CHECK-NEXT: nop 2933; CHECK-NEXT: fmr f1, f21 2934; CHECK-NEXT: mtvsrd v24, r3 2935; CHECK-NEXT: bl llrintf 2936; CHECK-NEXT: nop 2937; CHECK-NEXT: fmr f1, f22 2938; CHECK-NEXT: mtfprd f0, r3 2939; CHECK-NEXT: xxmrghd v24, vs0, v24 2940; CHECK-NEXT: bl llrintf 2941; CHECK-NEXT: nop 2942; CHECK-NEXT: fmr f1, f23 2943; CHECK-NEXT: mtvsrd v22, r3 2944; CHECK-NEXT: bl llrintf 2945; CHECK-NEXT: nop 2946; CHECK-NEXT: fmr f1, f24 2947; CHECK-NEXT: mtfprd f0, r3 2948; CHECK-NEXT: xxmrghd v22, vs0, v22 2949; CHECK-NEXT: bl llrintf 2950; CHECK-NEXT: nop 2951; CHECK-NEXT: fmr f1, f25 2952; CHECK-NEXT: mtvsrd v20, r3 2953; CHECK-NEXT: bl llrintf 2954; CHECK-NEXT: nop 2955; CHECK-NEXT: fmr f1, f26 2956; CHECK-NEXT: mtfprd f0, r3 2957; CHECK-NEXT: xxmrghd v20, vs0, v20 2958; CHECK-NEXT: bl llrintf 2959; CHECK-NEXT: nop 2960; CHECK-NEXT: fmr f1, f27 2961; CHECK-NEXT: mtvsrd v21, r3 2962; CHECK-NEXT: bl llrintf 2963; CHECK-NEXT: nop 2964; CHECK-NEXT: fmr f1, f28 2965; CHECK-NEXT: mtfprd f0, r3 2966; CHECK-NEXT: xxmrghd v21, vs0, v21 2967; CHECK-NEXT: bl llrintf 2968; CHECK-NEXT: nop 2969; CHECK-NEXT: fmr f1, f29 2970; CHECK-NEXT: mtvsrd v23, r3 2971; CHECK-NEXT: bl llrintf 2972; CHECK-NEXT: nop 2973; CHECK-NEXT: mtfprd f0, r3 2974; CHECK-NEXT: li r3, 200 2975; CHECK-NEXT: lxsspx f1, r1, r3 # 4-byte Folded Reload 2976; CHECK-NEXT: xxmrghd v23, vs0, v23 2977; CHECK-NEXT: bl llrintf 2978; CHECK-NEXT: nop 2979; CHECK-NEXT: mtvsrd v25, r3 2980; CHECK-NEXT: li r3, 204 2981; CHECK-NEXT: lxsspx f1, r1, r3 # 4-byte Folded Reload 2982; CHECK-NEXT: bl llrintf 2983; CHECK-NEXT: nop 2984; CHECK-NEXT: mtfprd f0, r3 2985; CHECK-NEXT: li r3, 240 2986; CHECK-NEXT: xxswapd vs1, v23 2987; CHECK-NEXT: li r4, 128 2988; CHECK-NEXT: xxswapd vs2, v21 2989; CHECK-NEXT: xxswapd vs3, v31 2990; CHECK-NEXT: xxmrghd v2, vs0, v25 2991; CHECK-NEXT: xxswapd vs0, v2 2992; CHECK-NEXT: stxvd2x vs0, r30, r3 2993; CHECK-NEXT: li r3, 224 2994; CHECK-NEXT: stxvd2x vs1, r30, r3 2995; CHECK-NEXT: li r3, 208 2996; CHECK-NEXT: stxvd2x vs2, r30, r3 2997; CHECK-NEXT: li r3, 192 2998; CHECK-NEXT: xxswapd vs0, v20 2999; CHECK-NEXT: stxvd2x vs0, r30, r3 3000; CHECK-NEXT: li r3, 176 3001; CHECK-NEXT: xxswapd vs1, v22 3002; CHECK-NEXT: stxvd2x vs1, r30, r3 3003; CHECK-NEXT: li r3, 160 3004; CHECK-NEXT: xxswapd vs2, v28 3005; CHECK-NEXT: xxswapd vs0, v24 3006; CHECK-NEXT: stxvd2x vs0, r30, r3 3007; CHECK-NEXT: li r3, 144 3008; CHECK-NEXT: xxswapd vs1, v26 3009; CHECK-NEXT: stxvd2x vs1, r30, r3 3010; CHECK-NEXT: li r3, 128 3011; CHECK-NEXT: stxvd2x vs2, r30, r3 3012; CHECK-NEXT: li r3, 112 3013; CHECK-NEXT: xxswapd vs0, v30 3014; CHECK-NEXT: stxvd2x vs0, r30, r3 3015; CHECK-NEXT: li r3, 96 3016; CHECK-NEXT: stxvd2x vs3, r30, r3 3017; CHECK-NEXT: li r3, 80 3018; CHECK-NEXT: lxvd2x vs2, r1, r4 # 16-byte Folded Reload 3019; CHECK-NEXT: li r4, 144 3020; CHECK-NEXT: xxswapd vs1, v29 3021; CHECK-NEXT: stxvd2x vs1, r30, r3 3022; CHECK-NEXT: li r3, 64 3023; CHECK-NEXT: lxvd2x vs1, r1, r4 # 16-byte Folded Reload 3024; CHECK-NEXT: li r4, 160 3025; CHECK-NEXT: lxvd2x vs3, r1, r4 # 16-byte Folded Reload 3026; CHECK-NEXT: li r4, 176 3027; CHECK-NEXT: lxvd2x vs4, r1, r4 # 16-byte Folded Reload 3028; CHECK-NEXT: xxswapd vs0, v27 3029; CHECK-NEXT: stxvd2x vs0, r30, r3 3030; CHECK-NEXT: li r3, 48 3031; CHECK-NEXT: xxswapd vs2, vs2 3032; CHECK-NEXT: stxvd2x vs2, r30, r3 3033; CHECK-NEXT: li r3, 32 3034; CHECK-NEXT: xxswapd vs1, vs1 3035; CHECK-NEXT: stxvd2x vs1, r30, r3 3036; CHECK-NEXT: li r3, 16 3037; CHECK-NEXT: xxswapd vs3, vs3 3038; CHECK-NEXT: stxvd2x vs3, r30, r3 3039; CHECK-NEXT: li r3, 384 3040; CHECK-NEXT: xxswapd vs4, vs4 3041; CHECK-NEXT: stxvd2x vs4, 0, r30 3042; CHECK-NEXT: lvx v31, r1, r3 # 16-byte Folded Reload 3043; CHECK-NEXT: li r3, 368 3044; CHECK-NEXT: lfd f31, 680(r1) # 8-byte Folded Reload 3045; CHECK-NEXT: lfd f30, 672(r1) # 8-byte Folded Reload 3046; CHECK-NEXT: lfd f29, 664(r1) # 8-byte Folded Reload 3047; CHECK-NEXT: lfd f28, 656(r1) # 8-byte Folded Reload 3048; CHECK-NEXT: lfd f27, 648(r1) # 8-byte Folded Reload 3049; CHECK-NEXT: lfd f26, 640(r1) # 8-byte Folded Reload 3050; CHECK-NEXT: lfd f25, 632(r1) # 8-byte Folded Reload 3051; CHECK-NEXT: lfd f24, 624(r1) # 8-byte Folded Reload 3052; CHECK-NEXT: lfd f23, 616(r1) # 8-byte Folded Reload 3053; CHECK-NEXT: lfd f22, 608(r1) # 8-byte Folded Reload 3054; CHECK-NEXT: lfd f21, 600(r1) # 8-byte Folded Reload 3055; CHECK-NEXT: lfd f20, 592(r1) # 8-byte Folded Reload 3056; CHECK-NEXT: lfd f19, 584(r1) # 8-byte Folded Reload 3057; CHECK-NEXT: lfd f18, 576(r1) # 8-byte Folded Reload 3058; CHECK-NEXT: lfd f17, 568(r1) # 8-byte Folded Reload 3059; CHECK-NEXT: lfd f16, 560(r1) # 8-byte Folded Reload 3060; CHECK-NEXT: lvx v30, r1, r3 # 16-byte Folded Reload 3061; CHECK-NEXT: li r3, 352 3062; CHECK-NEXT: lfd f15, 552(r1) # 8-byte Folded Reload 3063; CHECK-NEXT: lfd f14, 544(r1) # 8-byte Folded Reload 3064; CHECK-NEXT: ld r31, 536(r1) # 8-byte Folded Reload 3065; CHECK-NEXT: ld r30, 528(r1) # 8-byte Folded Reload 3066; CHECK-NEXT: ld r29, 520(r1) # 8-byte Folded Reload 3067; CHECK-NEXT: ld r28, 512(r1) # 8-byte Folded Reload 3068; CHECK-NEXT: lvx v29, r1, r3 # 16-byte Folded Reload 3069; CHECK-NEXT: li r3, 336 3070; CHECK-NEXT: ld r27, 504(r1) # 8-byte Folded Reload 3071; CHECK-NEXT: ld r26, 496(r1) # 8-byte Folded Reload 3072; CHECK-NEXT: ld r25, 488(r1) # 8-byte Folded Reload 3073; CHECK-NEXT: ld r24, 480(r1) # 8-byte Folded Reload 3074; CHECK-NEXT: ld r23, 472(r1) # 8-byte Folded Reload 3075; CHECK-NEXT: ld r22, 464(r1) # 8-byte Folded Reload 3076; CHECK-NEXT: lvx v28, r1, r3 # 16-byte Folded Reload 3077; CHECK-NEXT: li r3, 320 3078; CHECK-NEXT: ld r21, 456(r1) # 8-byte Folded Reload 3079; CHECK-NEXT: ld r20, 448(r1) # 8-byte Folded Reload 3080; CHECK-NEXT: ld r19, 440(r1) # 8-byte Folded Reload 3081; CHECK-NEXT: ld r18, 432(r1) # 8-byte Folded Reload 3082; CHECK-NEXT: ld r17, 424(r1) # 8-byte Folded Reload 3083; CHECK-NEXT: ld r16, 416(r1) # 8-byte Folded Reload 3084; CHECK-NEXT: lvx v27, r1, r3 # 16-byte Folded Reload 3085; CHECK-NEXT: li r3, 304 3086; CHECK-NEXT: ld r15, 408(r1) # 8-byte Folded Reload 3087; CHECK-NEXT: ld r14, 400(r1) # 8-byte Folded Reload 3088; CHECK-NEXT: lvx v26, r1, r3 # 16-byte Folded Reload 3089; CHECK-NEXT: li r3, 288 3090; CHECK-NEXT: lvx v25, r1, r3 # 16-byte Folded Reload 3091; CHECK-NEXT: li r3, 272 3092; CHECK-NEXT: lvx v24, r1, r3 # 16-byte Folded Reload 3093; CHECK-NEXT: li r3, 256 3094; CHECK-NEXT: lvx v23, r1, r3 # 16-byte Folded Reload 3095; CHECK-NEXT: li r3, 240 3096; CHECK-NEXT: lvx v22, r1, r3 # 16-byte Folded Reload 3097; CHECK-NEXT: li r3, 224 3098; CHECK-NEXT: lvx v21, r1, r3 # 16-byte Folded Reload 3099; CHECK-NEXT: li r3, 208 3100; CHECK-NEXT: lvx v20, r1, r3 # 16-byte Folded Reload 3101; CHECK-NEXT: addi r1, r1, 688 3102; CHECK-NEXT: ld r0, 16(r1) 3103; CHECK-NEXT: mtlr r0 3104; CHECK-NEXT: blr 3105; 3106; FAST-LABEL: llrint_v32i64_v32f16: 3107; FAST: # %bb.0: 3108; FAST-NEXT: mflr r0 3109; FAST-NEXT: stdu r1, -480(r1) 3110; FAST-NEXT: std r0, 496(r1) 3111; FAST-NEXT: .cfi_def_cfa_offset 480 3112; FAST-NEXT: .cfi_offset lr, 16 3113; FAST-NEXT: .cfi_offset r30, -160 3114; FAST-NEXT: .cfi_offset f14, -144 3115; FAST-NEXT: .cfi_offset f15, -136 3116; FAST-NEXT: .cfi_offset f16, -128 3117; FAST-NEXT: .cfi_offset f17, -120 3118; FAST-NEXT: .cfi_offset f18, -112 3119; FAST-NEXT: .cfi_offset f19, -104 3120; FAST-NEXT: .cfi_offset f20, -96 3121; FAST-NEXT: .cfi_offset f21, -88 3122; FAST-NEXT: .cfi_offset f22, -80 3123; FAST-NEXT: .cfi_offset f23, -72 3124; FAST-NEXT: .cfi_offset f24, -64 3125; FAST-NEXT: .cfi_offset f25, -56 3126; FAST-NEXT: .cfi_offset f26, -48 3127; FAST-NEXT: .cfi_offset f27, -40 3128; FAST-NEXT: .cfi_offset f28, -32 3129; FAST-NEXT: .cfi_offset f29, -24 3130; FAST-NEXT: .cfi_offset f30, -16 3131; FAST-NEXT: .cfi_offset f31, -8 3132; FAST-NEXT: .cfi_offset v20, -352 3133; FAST-NEXT: .cfi_offset v21, -336 3134; FAST-NEXT: .cfi_offset v22, -320 3135; FAST-NEXT: .cfi_offset v23, -304 3136; FAST-NEXT: .cfi_offset v24, -288 3137; FAST-NEXT: .cfi_offset v25, -272 3138; FAST-NEXT: .cfi_offset v26, -256 3139; FAST-NEXT: .cfi_offset v27, -240 3140; FAST-NEXT: .cfi_offset v28, -224 3141; FAST-NEXT: .cfi_offset v29, -208 3142; FAST-NEXT: .cfi_offset v30, -192 3143; FAST-NEXT: .cfi_offset v31, -176 3144; FAST-NEXT: li r4, 128 3145; FAST-NEXT: std r30, 320(r1) # 8-byte Folded Spill 3146; FAST-NEXT: stfd f14, 336(r1) # 8-byte Folded Spill 3147; FAST-NEXT: fmr f14, f5 3148; FAST-NEXT: stfd f15, 344(r1) # 8-byte Folded Spill 3149; FAST-NEXT: stfd f16, 352(r1) # 8-byte Folded Spill 3150; FAST-NEXT: fmr f16, f4 3151; FAST-NEXT: mr r30, r3 3152; FAST-NEXT: stvx v20, r1, r4 # 16-byte Folded Spill 3153; FAST-NEXT: li r4, 144 3154; FAST-NEXT: stfd f17, 360(r1) # 8-byte Folded Spill 3155; FAST-NEXT: stfd f18, 368(r1) # 8-byte Folded Spill 3156; FAST-NEXT: stfd f19, 376(r1) # 8-byte Folded Spill 3157; FAST-NEXT: stfd f20, 384(r1) # 8-byte Folded Spill 3158; FAST-NEXT: stfd f21, 392(r1) # 8-byte Folded Spill 3159; FAST-NEXT: stfd f22, 400(r1) # 8-byte Folded Spill 3160; FAST-NEXT: stvx v21, r1, r4 # 16-byte Folded Spill 3161; FAST-NEXT: li r4, 160 3162; FAST-NEXT: stfd f23, 408(r1) # 8-byte Folded Spill 3163; FAST-NEXT: stfd f24, 416(r1) # 8-byte Folded Spill 3164; FAST-NEXT: stfd f25, 424(r1) # 8-byte Folded Spill 3165; FAST-NEXT: stfd f26, 432(r1) # 8-byte Folded Spill 3166; FAST-NEXT: stfd f27, 440(r1) # 8-byte Folded Spill 3167; FAST-NEXT: stfd f28, 448(r1) # 8-byte Folded Spill 3168; FAST-NEXT: stvx v22, r1, r4 # 16-byte Folded Spill 3169; FAST-NEXT: li r4, 176 3170; FAST-NEXT: xxlor v22, f3, f3 3171; FAST-NEXT: stfd f29, 456(r1) # 8-byte Folded Spill 3172; FAST-NEXT: fmr f29, f9 3173; FAST-NEXT: stfd f30, 464(r1) # 8-byte Folded Spill 3174; FAST-NEXT: stfd f31, 472(r1) # 8-byte Folded Spill 3175; FAST-NEXT: stvx v23, r1, r4 # 16-byte Folded Spill 3176; FAST-NEXT: li r4, 192 3177; FAST-NEXT: xxlor v23, f2, f2 3178; FAST-NEXT: stvx v24, r1, r4 # 16-byte Folded Spill 3179; FAST-NEXT: li r4, 208 3180; FAST-NEXT: stvx v25, r1, r4 # 16-byte Folded Spill 3181; FAST-NEXT: li r4, 224 3182; FAST-NEXT: xxlor v25, f13, f13 3183; FAST-NEXT: stvx v26, r1, r4 # 16-byte Folded Spill 3184; FAST-NEXT: li r4, 240 3185; FAST-NEXT: xxlor v26, f12, f12 3186; FAST-NEXT: stvx v27, r1, r4 # 16-byte Folded Spill 3187; FAST-NEXT: li r4, 256 3188; FAST-NEXT: xxlor v27, f11, f11 3189; FAST-NEXT: stvx v28, r1, r4 # 16-byte Folded Spill 3190; FAST-NEXT: li r4, 272 3191; FAST-NEXT: xxlor v28, f10, f10 3192; FAST-NEXT: stvx v29, r1, r4 # 16-byte Folded Spill 3193; FAST-NEXT: li r4, 288 3194; FAST-NEXT: xxlor v29, f8, f8 3195; FAST-NEXT: stvx v30, r1, r4 # 16-byte Folded Spill 3196; FAST-NEXT: li r4, 304 3197; FAST-NEXT: xxlor v30, f7, f7 3198; FAST-NEXT: stvx v31, r1, r4 # 16-byte Folded Spill 3199; FAST-NEXT: li r4, 44 3200; FAST-NEXT: xxlor v31, f6, f6 3201; FAST-NEXT: stxsspx f1, r1, r4 # 4-byte Folded Spill 3202; FAST-NEXT: lfs f1, 768(r1) 3203; FAST-NEXT: bl __gnu_f2h_ieee 3204; FAST-NEXT: nop 3205; FAST-NEXT: clrldi r3, r3, 48 3206; FAST-NEXT: bl __gnu_h2f_ieee 3207; FAST-NEXT: nop 3208; FAST-NEXT: li r3, 120 3209; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill 3210; FAST-NEXT: lfs f1, 760(r1) 3211; FAST-NEXT: bl __gnu_f2h_ieee 3212; FAST-NEXT: nop 3213; FAST-NEXT: clrldi r3, r3, 48 3214; FAST-NEXT: bl __gnu_h2f_ieee 3215; FAST-NEXT: nop 3216; FAST-NEXT: li r3, 112 3217; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill 3218; FAST-NEXT: lfs f1, 752(r1) 3219; FAST-NEXT: bl __gnu_f2h_ieee 3220; FAST-NEXT: nop 3221; FAST-NEXT: clrldi r3, r3, 48 3222; FAST-NEXT: bl __gnu_h2f_ieee 3223; FAST-NEXT: nop 3224; FAST-NEXT: li r3, 104 3225; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill 3226; FAST-NEXT: lfs f1, 744(r1) 3227; FAST-NEXT: bl __gnu_f2h_ieee 3228; FAST-NEXT: nop 3229; FAST-NEXT: clrldi r3, r3, 48 3230; FAST-NEXT: bl __gnu_h2f_ieee 3231; FAST-NEXT: nop 3232; FAST-NEXT: li r3, 96 3233; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill 3234; FAST-NEXT: lfs f1, 736(r1) 3235; FAST-NEXT: bl __gnu_f2h_ieee 3236; FAST-NEXT: nop 3237; FAST-NEXT: clrldi r3, r3, 48 3238; FAST-NEXT: bl __gnu_h2f_ieee 3239; FAST-NEXT: nop 3240; FAST-NEXT: li r3, 88 3241; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill 3242; FAST-NEXT: lfs f1, 728(r1) 3243; FAST-NEXT: bl __gnu_f2h_ieee 3244; FAST-NEXT: nop 3245; FAST-NEXT: clrldi r3, r3, 48 3246; FAST-NEXT: bl __gnu_h2f_ieee 3247; FAST-NEXT: nop 3248; FAST-NEXT: li r3, 80 3249; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill 3250; FAST-NEXT: lfs f1, 720(r1) 3251; FAST-NEXT: bl __gnu_f2h_ieee 3252; FAST-NEXT: nop 3253; FAST-NEXT: clrldi r3, r3, 48 3254; FAST-NEXT: bl __gnu_h2f_ieee 3255; FAST-NEXT: nop 3256; FAST-NEXT: li r3, 72 3257; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill 3258; FAST-NEXT: lfs f1, 712(r1) 3259; FAST-NEXT: bl __gnu_f2h_ieee 3260; FAST-NEXT: nop 3261; FAST-NEXT: clrldi r3, r3, 48 3262; FAST-NEXT: bl __gnu_h2f_ieee 3263; FAST-NEXT: nop 3264; FAST-NEXT: li r3, 64 3265; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill 3266; FAST-NEXT: lfs f1, 704(r1) 3267; FAST-NEXT: bl __gnu_f2h_ieee 3268; FAST-NEXT: nop 3269; FAST-NEXT: clrldi r3, r3, 48 3270; FAST-NEXT: bl __gnu_h2f_ieee 3271; FAST-NEXT: nop 3272; FAST-NEXT: li r3, 56 3273; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill 3274; FAST-NEXT: lfs f1, 696(r1) 3275; FAST-NEXT: bl __gnu_f2h_ieee 3276; FAST-NEXT: nop 3277; FAST-NEXT: clrldi r3, r3, 48 3278; FAST-NEXT: bl __gnu_h2f_ieee 3279; FAST-NEXT: nop 3280; FAST-NEXT: li r3, 48 3281; FAST-NEXT: stxsdx f1, r1, r3 # 8-byte Folded Spill 3282; FAST-NEXT: lfs f1, 688(r1) 3283; FAST-NEXT: bl __gnu_f2h_ieee 3284; FAST-NEXT: nop 3285; FAST-NEXT: clrldi r3, r3, 48 3286; FAST-NEXT: bl __gnu_h2f_ieee 3287; FAST-NEXT: nop 3288; FAST-NEXT: xxlor v21, f1, f1 3289; FAST-NEXT: lfs f1, 680(r1) 3290; FAST-NEXT: bl __gnu_f2h_ieee 3291; FAST-NEXT: nop 3292; FAST-NEXT: clrldi r3, r3, 48 3293; FAST-NEXT: bl __gnu_h2f_ieee 3294; FAST-NEXT: nop 3295; FAST-NEXT: xxlor v20, f1, f1 3296; FAST-NEXT: lfs f1, 672(r1) 3297; FAST-NEXT: bl __gnu_f2h_ieee 3298; FAST-NEXT: nop 3299; FAST-NEXT: clrldi r3, r3, 48 3300; FAST-NEXT: bl __gnu_h2f_ieee 3301; FAST-NEXT: nop 3302; FAST-NEXT: xxlor v24, f1, f1 3303; FAST-NEXT: lfs f1, 664(r1) 3304; FAST-NEXT: bl __gnu_f2h_ieee 3305; FAST-NEXT: nop 3306; FAST-NEXT: clrldi r3, r3, 48 3307; FAST-NEXT: bl __gnu_h2f_ieee 3308; FAST-NEXT: nop 3309; FAST-NEXT: fmr f31, f1 3310; FAST-NEXT: lfs f1, 656(r1) 3311; FAST-NEXT: bl __gnu_f2h_ieee 3312; FAST-NEXT: nop 3313; FAST-NEXT: clrldi r3, r3, 48 3314; FAST-NEXT: bl __gnu_h2f_ieee 3315; FAST-NEXT: nop 3316; FAST-NEXT: fmr f30, f1 3317; FAST-NEXT: lfs f1, 648(r1) 3318; FAST-NEXT: bl __gnu_f2h_ieee 3319; FAST-NEXT: nop 3320; FAST-NEXT: clrldi r3, r3, 48 3321; FAST-NEXT: bl __gnu_h2f_ieee 3322; FAST-NEXT: nop 3323; FAST-NEXT: fmr f28, f1 3324; FAST-NEXT: lfs f1, 640(r1) 3325; FAST-NEXT: bl __gnu_f2h_ieee 3326; FAST-NEXT: nop 3327; FAST-NEXT: clrldi r3, r3, 48 3328; FAST-NEXT: bl __gnu_h2f_ieee 3329; FAST-NEXT: nop 3330; FAST-NEXT: fmr f27, f1 3331; FAST-NEXT: lfs f1, 632(r1) 3332; FAST-NEXT: bl __gnu_f2h_ieee 3333; FAST-NEXT: nop 3334; FAST-NEXT: clrldi r3, r3, 48 3335; FAST-NEXT: bl __gnu_h2f_ieee 3336; FAST-NEXT: nop 3337; FAST-NEXT: fmr f26, f1 3338; FAST-NEXT: lfs f1, 624(r1) 3339; FAST-NEXT: bl __gnu_f2h_ieee 3340; FAST-NEXT: nop 3341; FAST-NEXT: clrldi r3, r3, 48 3342; FAST-NEXT: bl __gnu_h2f_ieee 3343; FAST-NEXT: nop 3344; FAST-NEXT: fmr f25, f1 3345; FAST-NEXT: xxlor f1, v25, v25 3346; FAST-NEXT: bl __gnu_f2h_ieee 3347; FAST-NEXT: nop 3348; FAST-NEXT: clrldi r3, r3, 48 3349; FAST-NEXT: bl __gnu_h2f_ieee 3350; FAST-NEXT: nop 3351; FAST-NEXT: fmr f24, f1 3352; FAST-NEXT: xxlor f1, v26, v26 3353; FAST-NEXT: bl __gnu_f2h_ieee 3354; FAST-NEXT: nop 3355; FAST-NEXT: clrldi r3, r3, 48 3356; FAST-NEXT: bl __gnu_h2f_ieee 3357; FAST-NEXT: nop 3358; FAST-NEXT: fmr f23, f1 3359; FAST-NEXT: xxlor f1, v27, v27 3360; FAST-NEXT: bl __gnu_f2h_ieee 3361; FAST-NEXT: nop 3362; FAST-NEXT: clrldi r3, r3, 48 3363; FAST-NEXT: bl __gnu_h2f_ieee 3364; FAST-NEXT: nop 3365; FAST-NEXT: fmr f22, f1 3366; FAST-NEXT: xxlor f1, v28, v28 3367; FAST-NEXT: bl __gnu_f2h_ieee 3368; FAST-NEXT: nop 3369; FAST-NEXT: clrldi r3, r3, 48 3370; FAST-NEXT: bl __gnu_h2f_ieee 3371; FAST-NEXT: nop 3372; FAST-NEXT: fmr f21, f1 3373; FAST-NEXT: fmr f1, f29 3374; FAST-NEXT: bl __gnu_f2h_ieee 3375; FAST-NEXT: nop 3376; FAST-NEXT: clrldi r3, r3, 48 3377; FAST-NEXT: bl __gnu_h2f_ieee 3378; FAST-NEXT: nop 3379; FAST-NEXT: fmr f20, f1 3380; FAST-NEXT: xxlor f1, v29, v29 3381; FAST-NEXT: bl __gnu_f2h_ieee 3382; FAST-NEXT: nop 3383; FAST-NEXT: clrldi r3, r3, 48 3384; FAST-NEXT: bl __gnu_h2f_ieee 3385; FAST-NEXT: nop 3386; FAST-NEXT: fmr f19, f1 3387; FAST-NEXT: xxlor f1, v30, v30 3388; FAST-NEXT: bl __gnu_f2h_ieee 3389; FAST-NEXT: nop 3390; FAST-NEXT: clrldi r3, r3, 48 3391; FAST-NEXT: bl __gnu_h2f_ieee 3392; FAST-NEXT: nop 3393; FAST-NEXT: fmr f18, f1 3394; FAST-NEXT: xxlor f1, v31, v31 3395; FAST-NEXT: bl __gnu_f2h_ieee 3396; FAST-NEXT: nop 3397; FAST-NEXT: clrldi r3, r3, 48 3398; FAST-NEXT: bl __gnu_h2f_ieee 3399; FAST-NEXT: nop 3400; FAST-NEXT: fmr f29, f1 3401; FAST-NEXT: fmr f1, f14 3402; FAST-NEXT: bl __gnu_f2h_ieee 3403; FAST-NEXT: nop 3404; FAST-NEXT: clrldi r3, r3, 48 3405; FAST-NEXT: bl __gnu_h2f_ieee 3406; FAST-NEXT: nop 3407; FAST-NEXT: fmr f14, f1 3408; FAST-NEXT: fmr f1, f16 3409; FAST-NEXT: bl __gnu_f2h_ieee 3410; FAST-NEXT: nop 3411; FAST-NEXT: clrldi r3, r3, 48 3412; FAST-NEXT: bl __gnu_h2f_ieee 3413; FAST-NEXT: nop 3414; FAST-NEXT: fmr f16, f1 3415; FAST-NEXT: xxlor f1, v22, v22 3416; FAST-NEXT: bl __gnu_f2h_ieee 3417; FAST-NEXT: nop 3418; FAST-NEXT: clrldi r3, r3, 48 3419; FAST-NEXT: bl __gnu_h2f_ieee 3420; FAST-NEXT: nop 3421; FAST-NEXT: fmr f17, f1 3422; FAST-NEXT: xxlor f1, v23, v23 3423; FAST-NEXT: bl __gnu_f2h_ieee 3424; FAST-NEXT: nop 3425; FAST-NEXT: clrldi r3, r3, 48 3426; FAST-NEXT: bl __gnu_h2f_ieee 3427; FAST-NEXT: nop 3428; FAST-NEXT: li r3, 44 3429; FAST-NEXT: fmr f15, f1 3430; FAST-NEXT: lxsspx f1, r1, r3 # 4-byte Folded Reload 3431; FAST-NEXT: bl __gnu_f2h_ieee 3432; FAST-NEXT: nop 3433; FAST-NEXT: clrldi r3, r3, 48 3434; FAST-NEXT: bl __gnu_h2f_ieee 3435; FAST-NEXT: nop 3436; FAST-NEXT: fctid f3, f15 3437; FAST-NEXT: fctid f4, f17 3438; FAST-NEXT: mffprd r3, f3 3439; FAST-NEXT: fctid f5, f16 3440; FAST-NEXT: fctid f6, f14 3441; FAST-NEXT: fctid f7, f18 3442; FAST-NEXT: fctid f8, f19 3443; FAST-NEXT: fctid f13, f1 3444; FAST-NEXT: fctid f9, f20 3445; FAST-NEXT: fctid f10, f22 3446; FAST-NEXT: fctid f11, f24 3447; FAST-NEXT: fctid f12, f25 3448; FAST-NEXT: fctid f2, f23 3449; FAST-NEXT: fctid f0, f21 3450; FAST-NEXT: mtvsrd v2, r3 3451; FAST-NEXT: mffprd r3, f4 3452; FAST-NEXT: mtvsrd v3, r3 3453; FAST-NEXT: mffprd r3, f5 3454; FAST-NEXT: mtfprd f5, r3 3455; FAST-NEXT: mffprd r3, f6 3456; FAST-NEXT: mtfprd f1, r3 3457; FAST-NEXT: mffprd r3, f7 3458; FAST-NEXT: mtfprd f6, r3 3459; FAST-NEXT: mffprd r3, f8 3460; FAST-NEXT: mtfprd f7, r3 3461; FAST-NEXT: mffprd r3, f9 3462; FAST-NEXT: mtfprd f3, r3 3463; FAST-NEXT: mffprd r3, f10 3464; FAST-NEXT: mtfprd f4, r3 3465; FAST-NEXT: mffprd r3, f11 3466; FAST-NEXT: fctid f11, f31 3467; FAST-NEXT: lfd f31, 56(r1) # 8-byte Folded Reload 3468; FAST-NEXT: mtfprd f8, r3 3469; FAST-NEXT: mffprd r3, f12 3470; FAST-NEXT: xxlor f12, v24, v24 3471; FAST-NEXT: fctid f31, f31 3472; FAST-NEXT: fctid f12, f12 3473; FAST-NEXT: mtfprd f9, r3 3474; FAST-NEXT: mffprd r3, f13 3475; FAST-NEXT: lfd f13, 48(r1) # 8-byte Folded Reload 3476; FAST-NEXT: mtfprd f10, r3 3477; FAST-NEXT: fctid f13, f13 3478; FAST-NEXT: xxmrghd v3, vs5, v3 3479; FAST-NEXT: fctid f5, f26 3480; FAST-NEXT: mffprd r3, f5 3481; FAST-NEXT: mtfprd f5, r3 3482; FAST-NEXT: xxmrghd v4, vs7, vs6 3483; FAST-NEXT: fctid f6, f27 3484; FAST-NEXT: fctid f7, f28 3485; FAST-NEXT: mffprd r3, f6 3486; FAST-NEXT: lfd f28, 96(r1) # 8-byte Folded Reload 3487; FAST-NEXT: fctid f28, f28 3488; FAST-NEXT: mtfprd f6, r3 3489; FAST-NEXT: mffprd r3, f7 3490; FAST-NEXT: mtfprd f7, r3 3491; FAST-NEXT: xxmrghd v2, v2, vs10 3492; FAST-NEXT: fctid f10, f30 3493; FAST-NEXT: mffprd r3, f10 3494; FAST-NEXT: lfd f30, 80(r1) # 8-byte Folded Reload 3495; FAST-NEXT: fctid f30, f30 3496; FAST-NEXT: mtfprd f10, r3 3497; FAST-NEXT: mffprd r3, f11 3498; FAST-NEXT: mtfprd f11, r3 3499; FAST-NEXT: mffprd r3, f12 3500; FAST-NEXT: mtfprd f12, r3 3501; FAST-NEXT: xxmrghd v5, vs12, vs11 3502; FAST-NEXT: xxlor f11, v20, v20 3503; FAST-NEXT: xxlor f12, v21, v21 3504; FAST-NEXT: fctid f11, f11 3505; FAST-NEXT: fctid f12, f12 3506; FAST-NEXT: mffprd r3, f11 3507; FAST-NEXT: mtfprd f11, r3 3508; FAST-NEXT: mffprd r3, f12 3509; FAST-NEXT: mtfprd f12, r3 3510; FAST-NEXT: mffprd r3, f13 3511; FAST-NEXT: mtfprd f13, r3 3512; FAST-NEXT: mffprd r3, f31 3513; FAST-NEXT: lfd f31, 64(r1) # 8-byte Folded Reload 3514; FAST-NEXT: fctid f31, f31 3515; FAST-NEXT: mtvsrd v0, r3 3516; FAST-NEXT: mffprd r3, f31 3517; FAST-NEXT: lfd f31, 72(r1) # 8-byte Folded Reload 3518; FAST-NEXT: mtvsrd v1, r3 3519; FAST-NEXT: mffprd r3, f30 3520; FAST-NEXT: lfd f30, 88(r1) # 8-byte Folded Reload 3521; FAST-NEXT: fctid f31, f31 3522; FAST-NEXT: mtvsrd v6, r3 3523; FAST-NEXT: mffprd r3, f28 3524; FAST-NEXT: lfd f28, 104(r1) # 8-byte Folded Reload 3525; FAST-NEXT: fctid f30, f30 3526; FAST-NEXT: fctid f28, f28 3527; FAST-NEXT: mtvsrd v7, r3 3528; FAST-NEXT: mffprd r3, f28 3529; FAST-NEXT: lfd f28, 112(r1) # 8-byte Folded Reload 3530; FAST-NEXT: fctid f28, f28 3531; FAST-NEXT: mtvsrd v8, r3 3532; FAST-NEXT: mffprd r3, f28 3533; FAST-NEXT: lfd f28, 120(r1) # 8-byte Folded Reload 3534; FAST-NEXT: fctid f28, f28 3535; FAST-NEXT: xxmrghd v10, vs12, vs11 3536; FAST-NEXT: xxmrghd v0, v0, vs13 3537; FAST-NEXT: xxswapd vs12, v0 3538; FAST-NEXT: xxmrghd v0, vs9, vs8 3539; FAST-NEXT: xxmrghd v7, v8, v7 3540; FAST-NEXT: mtvsrd v8, r3 3541; FAST-NEXT: mffprd r3, f28 3542; FAST-NEXT: mtvsrd v9, r3 3543; FAST-NEXT: mffprd r3, f30 3544; FAST-NEXT: xxswapd v7, v7 3545; FAST-NEXT: xxmrghd v8, v9, v8 3546; FAST-NEXT: mtvsrd v9, r3 3547; FAST-NEXT: mffprd r3, f31 3548; FAST-NEXT: xxswapd v8, v8 3549; FAST-NEXT: xxmrghd v6, v9, v6 3550; FAST-NEXT: mtvsrd v9, r3 3551; FAST-NEXT: li r3, 240 3552; FAST-NEXT: stxvd2x v8, r30, r3 3553; FAST-NEXT: li r3, 224 3554; FAST-NEXT: stxvd2x v7, r30, r3 3555; FAST-NEXT: li r3, 208 3556; FAST-NEXT: xxswapd vs11, v6 3557; FAST-NEXT: xxmrghd v6, vs10, vs7 3558; FAST-NEXT: stxvd2x vs11, r30, r3 3559; FAST-NEXT: li r3, 192 3560; FAST-NEXT: xxmrghd v1, v9, v1 3561; FAST-NEXT: xxswapd vs11, v1 3562; FAST-NEXT: xxmrghd v1, vs6, vs5 3563; FAST-NEXT: xxswapd vs5, v10 3564; FAST-NEXT: xxswapd vs6, v5 3565; FAST-NEXT: stxvd2x vs11, r30, r3 3566; FAST-NEXT: li r3, 176 3567; FAST-NEXT: stxvd2x vs12, r30, r3 3568; FAST-NEXT: li r3, 160 3569; FAST-NEXT: stxvd2x vs5, r30, r3 3570; FAST-NEXT: li r3, 144 3571; FAST-NEXT: stxvd2x vs6, r30, r3 3572; FAST-NEXT: mffprd r3, f2 3573; FAST-NEXT: mtfprd f7, r3 3574; FAST-NEXT: li r3, 128 3575; FAST-NEXT: xxswapd vs5, v6 3576; FAST-NEXT: stxvd2x vs5, r30, r3 3577; FAST-NEXT: li r3, 112 3578; FAST-NEXT: xxswapd vs2, v1 3579; FAST-NEXT: xxswapd vs6, v0 3580; FAST-NEXT: stxvd2x vs2, r30, r3 3581; FAST-NEXT: li r3, 96 3582; FAST-NEXT: fctid f2, f29 3583; FAST-NEXT: stxvd2x vs6, r30, r3 3584; FAST-NEXT: mffprd r3, f0 3585; FAST-NEXT: mtfprd f0, r3 3586; FAST-NEXT: mffprd r3, f2 3587; FAST-NEXT: mtfprd f2, r3 3588; FAST-NEXT: li r3, 80 3589; FAST-NEXT: xxmrghd v5, vs7, vs4 3590; FAST-NEXT: xxswapd vs4, v2 3591; FAST-NEXT: xxmrghd v0, vs0, vs3 3592; FAST-NEXT: xxswapd vs0, v5 3593; FAST-NEXT: xxswapd vs3, v3 3594; FAST-NEXT: stxvd2x vs0, r30, r3 3595; FAST-NEXT: li r3, 64 3596; FAST-NEXT: xxswapd vs0, v0 3597; FAST-NEXT: stxvd2x vs0, r30, r3 3598; FAST-NEXT: li r3, 48 3599; FAST-NEXT: xxmrghd v5, vs2, vs1 3600; FAST-NEXT: xxswapd vs1, v4 3601; FAST-NEXT: stxvd2x vs1, r30, r3 3602; FAST-NEXT: li r3, 32 3603; FAST-NEXT: xxswapd vs2, v5 3604; FAST-NEXT: stxvd2x vs2, r30, r3 3605; FAST-NEXT: li r3, 16 3606; FAST-NEXT: stxvd2x vs3, r30, r3 3607; FAST-NEXT: li r3, 304 3608; FAST-NEXT: stxvd2x vs4, 0, r30 3609; FAST-NEXT: lfd f31, 472(r1) # 8-byte Folded Reload 3610; FAST-NEXT: lfd f30, 464(r1) # 8-byte Folded Reload 3611; FAST-NEXT: lfd f29, 456(r1) # 8-byte Folded Reload 3612; FAST-NEXT: lfd f28, 448(r1) # 8-byte Folded Reload 3613; FAST-NEXT: lfd f27, 440(r1) # 8-byte Folded Reload 3614; FAST-NEXT: lfd f26, 432(r1) # 8-byte Folded Reload 3615; FAST-NEXT: lfd f25, 424(r1) # 8-byte Folded Reload 3616; FAST-NEXT: lfd f24, 416(r1) # 8-byte Folded Reload 3617; FAST-NEXT: lfd f23, 408(r1) # 8-byte Folded Reload 3618; FAST-NEXT: lfd f22, 400(r1) # 8-byte Folded Reload 3619; FAST-NEXT: lfd f21, 392(r1) # 8-byte Folded Reload 3620; FAST-NEXT: lfd f20, 384(r1) # 8-byte Folded Reload 3621; FAST-NEXT: lfd f19, 376(r1) # 8-byte Folded Reload 3622; FAST-NEXT: lfd f18, 368(r1) # 8-byte Folded Reload 3623; FAST-NEXT: lfd f17, 360(r1) # 8-byte Folded Reload 3624; FAST-NEXT: lfd f16, 352(r1) # 8-byte Folded Reload 3625; FAST-NEXT: lfd f15, 344(r1) # 8-byte Folded Reload 3626; FAST-NEXT: lfd f14, 336(r1) # 8-byte Folded Reload 3627; FAST-NEXT: lvx v31, r1, r3 # 16-byte Folded Reload 3628; FAST-NEXT: li r3, 288 3629; FAST-NEXT: ld r30, 320(r1) # 8-byte Folded Reload 3630; FAST-NEXT: lvx v30, r1, r3 # 16-byte Folded Reload 3631; FAST-NEXT: li r3, 272 3632; FAST-NEXT: lvx v29, r1, r3 # 16-byte Folded Reload 3633; FAST-NEXT: li r3, 256 3634; FAST-NEXT: lvx v28, r1, r3 # 16-byte Folded Reload 3635; FAST-NEXT: li r3, 240 3636; FAST-NEXT: lvx v27, r1, r3 # 16-byte Folded Reload 3637; FAST-NEXT: li r3, 224 3638; FAST-NEXT: lvx v26, r1, r3 # 16-byte Folded Reload 3639; FAST-NEXT: li r3, 208 3640; FAST-NEXT: lvx v25, r1, r3 # 16-byte Folded Reload 3641; FAST-NEXT: li r3, 192 3642; FAST-NEXT: lvx v24, r1, r3 # 16-byte Folded Reload 3643; FAST-NEXT: li r3, 176 3644; FAST-NEXT: lvx v23, r1, r3 # 16-byte Folded Reload 3645; FAST-NEXT: li r3, 160 3646; FAST-NEXT: lvx v22, r1, r3 # 16-byte Folded Reload 3647; FAST-NEXT: li r3, 144 3648; FAST-NEXT: lvx v21, r1, r3 # 16-byte Folded Reload 3649; FAST-NEXT: li r3, 128 3650; FAST-NEXT: lvx v20, r1, r3 # 16-byte Folded Reload 3651; FAST-NEXT: addi r1, r1, 480 3652; FAST-NEXT: ld r0, 16(r1) 3653; FAST-NEXT: mtlr r0 3654; FAST-NEXT: blr 3655 %a = call <32 x i64> @llvm.llrint.v32i64.v32f16(<32 x half> %x) 3656 ret <32 x i64> %a 3657} 3658declare <32 x i64> @llvm.llrint.v32i64.v32f16(<32 x half>) 3659 3660define <1 x i64> @llrint_v1i64_v1f32(<1 x float> %x) { 3661; BE-LABEL: llrint_v1i64_v1f32: 3662; BE: # %bb.0: 3663; BE-NEXT: mflr r0 3664; BE-NEXT: stdu r1, -112(r1) 3665; BE-NEXT: std r0, 128(r1) 3666; BE-NEXT: .cfi_def_cfa_offset 112 3667; BE-NEXT: .cfi_offset lr, 16 3668; BE-NEXT: bl llrintf 3669; BE-NEXT: nop 3670; BE-NEXT: addi r1, r1, 112 3671; BE-NEXT: ld r0, 16(r1) 3672; BE-NEXT: mtlr r0 3673; BE-NEXT: blr 3674; 3675; CHECK-LABEL: llrint_v1i64_v1f32: 3676; CHECK: # %bb.0: 3677; CHECK-NEXT: mflr r0 3678; CHECK-NEXT: stdu r1, -32(r1) 3679; CHECK-NEXT: std r0, 48(r1) 3680; CHECK-NEXT: .cfi_def_cfa_offset 32 3681; CHECK-NEXT: .cfi_offset lr, 16 3682; CHECK-NEXT: bl llrintf 3683; CHECK-NEXT: nop 3684; CHECK-NEXT: addi r1, r1, 32 3685; CHECK-NEXT: ld r0, 16(r1) 3686; CHECK-NEXT: mtlr r0 3687; CHECK-NEXT: blr 3688; 3689; FAST-LABEL: llrint_v1i64_v1f32: 3690; FAST: # %bb.0: 3691; FAST-NEXT: fctid f0, f1 3692; FAST-NEXT: mffprd r3, f0 3693; FAST-NEXT: blr 3694 %a = call <1 x i64> @llvm.llrint.v1i64.v1f32(<1 x float> %x) 3695 ret <1 x i64> %a 3696} 3697declare <1 x i64> @llvm.llrint.v1i64.v1f32(<1 x float>) 3698 3699define <2 x i64> @llrint_v2i64_v2f32(<2 x float> %x) { 3700; BE-LABEL: llrint_v2i64_v2f32: 3701; BE: # %bb.0: 3702; BE-NEXT: mflr r0 3703; BE-NEXT: stdu r1, -144(r1) 3704; BE-NEXT: std r0, 160(r1) 3705; BE-NEXT: .cfi_def_cfa_offset 144 3706; BE-NEXT: .cfi_offset lr, 16 3707; BE-NEXT: addi r3, r1, 112 3708; BE-NEXT: stxvw4x v2, 0, r3 3709; BE-NEXT: lfs f1, 116(r1) 3710; BE-NEXT: bl llrintf 3711; BE-NEXT: nop 3712; BE-NEXT: lfs f1, 112(r1) 3713; BE-NEXT: std r3, 136(r1) 3714; BE-NEXT: bl llrintf 3715; BE-NEXT: nop 3716; BE-NEXT: std r3, 128(r1) 3717; BE-NEXT: addi r3, r1, 128 3718; BE-NEXT: lxvd2x v2, 0, r3 3719; BE-NEXT: addi r1, r1, 144 3720; BE-NEXT: ld r0, 16(r1) 3721; BE-NEXT: mtlr r0 3722; BE-NEXT: blr 3723; 3724; CHECK-LABEL: llrint_v2i64_v2f32: 3725; CHECK: # %bb.0: 3726; CHECK-NEXT: mflr r0 3727; CHECK-NEXT: stdu r1, -64(r1) 3728; CHECK-NEXT: std r0, 80(r1) 3729; CHECK-NEXT: .cfi_def_cfa_offset 64 3730; CHECK-NEXT: .cfi_offset lr, 16 3731; CHECK-NEXT: .cfi_offset v31, -16 3732; CHECK-NEXT: xxsldwi vs0, v2, v2, 3 3733; CHECK-NEXT: li r3, 48 3734; CHECK-NEXT: xscvspdpn f1, vs0 3735; CHECK-NEXT: stvx v31, r1, r3 # 16-byte Folded Spill 3736; CHECK-NEXT: vmr v31, v2 3737; CHECK-NEXT: bl llrintf 3738; CHECK-NEXT: nop 3739; CHECK-NEXT: xxswapd vs0, v31 3740; CHECK-NEXT: mtvsrd v31, r3 3741; CHECK-NEXT: xscvspdpn f1, vs0 3742; CHECK-NEXT: bl llrintf 3743; CHECK-NEXT: nop 3744; CHECK-NEXT: mtfprd f0, r3 3745; CHECK-NEXT: li r3, 48 3746; CHECK-NEXT: xxmrghd v2, vs0, v31 3747; CHECK-NEXT: lvx v31, r1, r3 # 16-byte Folded Reload 3748; CHECK-NEXT: addi r1, r1, 64 3749; CHECK-NEXT: ld r0, 16(r1) 3750; CHECK-NEXT: mtlr r0 3751; CHECK-NEXT: blr 3752; 3753; FAST-LABEL: llrint_v2i64_v2f32: 3754; FAST: # %bb.0: 3755; FAST-NEXT: xxsldwi vs0, v2, v2, 3 3756; FAST-NEXT: xxswapd vs1, v2 3757; FAST-NEXT: xscvspdpn f0, vs0 3758; FAST-NEXT: xscvspdpn f1, vs1 3759; FAST-NEXT: fctid f0, f0 3760; FAST-NEXT: fctid f1, f1 3761; FAST-NEXT: mffprd r3, f0 3762; FAST-NEXT: mtfprd f0, r3 3763; FAST-NEXT: mffprd r3, f1 3764; FAST-NEXT: mtfprd f1, r3 3765; FAST-NEXT: xxmrghd v2, vs1, vs0 3766; FAST-NEXT: blr 3767 %a = call <2 x i64> @llvm.llrint.v2i64.v2f32(<2 x float> %x) 3768 ret <2 x i64> %a 3769} 3770declare <2 x i64> @llvm.llrint.v2i64.v2f32(<2 x float>) 3771 3772define <4 x i64> @llrint_v4i64_v4f32(<4 x float> %x) { 3773; BE-LABEL: llrint_v4i64_v4f32: 3774; BE: # %bb.0: 3775; BE-NEXT: mflr r0 3776; BE-NEXT: stdu r1, -160(r1) 3777; BE-NEXT: std r0, 176(r1) 3778; BE-NEXT: .cfi_def_cfa_offset 160 3779; BE-NEXT: .cfi_offset lr, 16 3780; BE-NEXT: addi r3, r1, 112 3781; BE-NEXT: stxvw4x v2, 0, r3 3782; BE-NEXT: lfs f1, 116(r1) 3783; BE-NEXT: bl llrintf 3784; BE-NEXT: nop 3785; BE-NEXT: lfs f1, 112(r1) 3786; BE-NEXT: std r3, 136(r1) 3787; BE-NEXT: bl llrintf 3788; BE-NEXT: nop 3789; BE-NEXT: lfs f1, 124(r1) 3790; BE-NEXT: std r3, 128(r1) 3791; BE-NEXT: bl llrintf 3792; BE-NEXT: nop 3793; BE-NEXT: lfs f1, 120(r1) 3794; BE-NEXT: std r3, 152(r1) 3795; BE-NEXT: bl llrintf 3796; BE-NEXT: nop 3797; BE-NEXT: std r3, 144(r1) 3798; BE-NEXT: addi r3, r1, 128 3799; BE-NEXT: lxvd2x v2, 0, r3 3800; BE-NEXT: addi r3, r1, 144 3801; BE-NEXT: lxvd2x v3, 0, r3 3802; BE-NEXT: addi r1, r1, 160 3803; BE-NEXT: ld r0, 16(r1) 3804; BE-NEXT: mtlr r0 3805; BE-NEXT: blr 3806; 3807; CHECK-LABEL: llrint_v4i64_v4f32: 3808; CHECK: # %bb.0: 3809; CHECK-NEXT: mflr r0 3810; CHECK-NEXT: stdu r1, -80(r1) 3811; CHECK-NEXT: std r0, 96(r1) 3812; CHECK-NEXT: .cfi_def_cfa_offset 80 3813; CHECK-NEXT: .cfi_offset lr, 16 3814; CHECK-NEXT: .cfi_offset v30, -32 3815; CHECK-NEXT: .cfi_offset v31, -16 3816; CHECK-NEXT: xxsldwi vs0, v2, v2, 3 3817; CHECK-NEXT: li r3, 48 3818; CHECK-NEXT: xscvspdpn f1, vs0 3819; CHECK-NEXT: stvx v30, r1, r3 # 16-byte Folded Spill 3820; CHECK-NEXT: li r3, 64 3821; CHECK-NEXT: stvx v31, r1, r3 # 16-byte Folded Spill 3822; CHECK-NEXT: vmr v31, v2 3823; CHECK-NEXT: bl llrintf 3824; CHECK-NEXT: nop 3825; CHECK-NEXT: xxswapd vs0, v31 3826; CHECK-NEXT: mtvsrd v30, r3 3827; CHECK-NEXT: xscvspdpn f1, vs0 3828; CHECK-NEXT: bl llrintf 3829; CHECK-NEXT: nop 3830; CHECK-NEXT: xscvspdpn f1, v31 3831; CHECK-NEXT: mtfprd f0, r3 3832; CHECK-NEXT: xxmrghd v30, vs0, v30 3833; CHECK-NEXT: bl llrintf 3834; CHECK-NEXT: nop 3835; CHECK-NEXT: xxsldwi vs0, v31, v31, 1 3836; CHECK-NEXT: mtvsrd v31, r3 3837; CHECK-NEXT: xscvspdpn f1, vs0 3838; CHECK-NEXT: bl llrintf 3839; CHECK-NEXT: nop 3840; CHECK-NEXT: mtfprd f0, r3 3841; CHECK-NEXT: li r3, 64 3842; CHECK-NEXT: vmr v2, v30 3843; CHECK-NEXT: xxmrghd v3, v31, vs0 3844; CHECK-NEXT: lvx v31, r1, r3 # 16-byte Folded Reload 3845; CHECK-NEXT: li r3, 48 3846; CHECK-NEXT: lvx v30, r1, r3 # 16-byte Folded Reload 3847; CHECK-NEXT: addi r1, r1, 80 3848; CHECK-NEXT: ld r0, 16(r1) 3849; CHECK-NEXT: mtlr r0 3850; CHECK-NEXT: blr 3851; 3852; FAST-LABEL: llrint_v4i64_v4f32: 3853; FAST: # %bb.0: 3854; FAST-NEXT: xxsldwi vs0, v2, v2, 3 3855; FAST-NEXT: xxswapd vs1, v2 3856; FAST-NEXT: xscvspdpn f0, vs0 3857; FAST-NEXT: xxsldwi vs2, v2, v2, 1 3858; FAST-NEXT: fctid f0, f0 3859; FAST-NEXT: mffprd r3, f0 3860; FAST-NEXT: xscvspdpn f0, vs1 3861; FAST-NEXT: mtfprd f1, r3 3862; FAST-NEXT: fctid f0, f0 3863; FAST-NEXT: mffprd r3, f0 3864; FAST-NEXT: mtfprd f0, r3 3865; FAST-NEXT: xxmrghd v4, vs0, vs1 3866; FAST-NEXT: xscvspdpn f0, v2 3867; FAST-NEXT: vmr v2, v4 3868; FAST-NEXT: fctid f0, f0 3869; FAST-NEXT: mffprd r3, f0 3870; FAST-NEXT: xscvspdpn f0, vs2 3871; FAST-NEXT: mtfprd f1, r3 3872; FAST-NEXT: fctid f0, f0 3873; FAST-NEXT: mffprd r3, f0 3874; FAST-NEXT: mtfprd f0, r3 3875; FAST-NEXT: xxmrghd v3, vs1, vs0 3876; FAST-NEXT: blr 3877 %a = call <4 x i64> @llvm.llrint.v4i64.v4f32(<4 x float> %x) 3878 ret <4 x i64> %a 3879} 3880declare <4 x i64> @llvm.llrint.v4i64.v4f32(<4 x float>) 3881 3882define <8 x i64> @llrint_v8i64_v8f32(<8 x float> %x) { 3883; BE-LABEL: llrint_v8i64_v8f32: 3884; BE: # %bb.0: 3885; BE-NEXT: mflr r0 3886; BE-NEXT: stdu r1, -208(r1) 3887; BE-NEXT: std r0, 224(r1) 3888; BE-NEXT: .cfi_def_cfa_offset 208 3889; BE-NEXT: .cfi_offset lr, 16 3890; BE-NEXT: addi r3, r1, 112 3891; BE-NEXT: stxvw4x v2, 0, r3 3892; BE-NEXT: addi r3, r1, 128 3893; BE-NEXT: stxvw4x v3, 0, r3 3894; BE-NEXT: lfs f1, 116(r1) 3895; BE-NEXT: bl llrintf 3896; BE-NEXT: nop 3897; BE-NEXT: lfs f1, 112(r1) 3898; BE-NEXT: std r3, 152(r1) 3899; BE-NEXT: bl llrintf 3900; BE-NEXT: nop 3901; BE-NEXT: lfs f1, 124(r1) 3902; BE-NEXT: std r3, 144(r1) 3903; BE-NEXT: bl llrintf 3904; BE-NEXT: nop 3905; BE-NEXT: lfs f1, 120(r1) 3906; BE-NEXT: std r3, 168(r1) 3907; BE-NEXT: bl llrintf 3908; BE-NEXT: nop 3909; BE-NEXT: lfs f1, 132(r1) 3910; BE-NEXT: std r3, 160(r1) 3911; BE-NEXT: bl llrintf 3912; BE-NEXT: nop 3913; BE-NEXT: lfs f1, 128(r1) 3914; BE-NEXT: std r3, 184(r1) 3915; BE-NEXT: bl llrintf 3916; BE-NEXT: nop 3917; BE-NEXT: lfs f1, 140(r1) 3918; BE-NEXT: std r3, 176(r1) 3919; BE-NEXT: bl llrintf 3920; BE-NEXT: nop 3921; BE-NEXT: lfs f1, 136(r1) 3922; BE-NEXT: std r3, 200(r1) 3923; BE-NEXT: bl llrintf 3924; BE-NEXT: nop 3925; BE-NEXT: std r3, 192(r1) 3926; BE-NEXT: addi r3, r1, 144 3927; BE-NEXT: lxvd2x v2, 0, r3 3928; BE-NEXT: addi r3, r1, 160 3929; BE-NEXT: lxvd2x v3, 0, r3 3930; BE-NEXT: addi r3, r1, 176 3931; BE-NEXT: lxvd2x v4, 0, r3 3932; BE-NEXT: addi r3, r1, 192 3933; BE-NEXT: lxvd2x v5, 0, r3 3934; BE-NEXT: addi r1, r1, 208 3935; BE-NEXT: ld r0, 16(r1) 3936; BE-NEXT: mtlr r0 3937; BE-NEXT: blr 3938; 3939; CHECK-LABEL: llrint_v8i64_v8f32: 3940; CHECK: # %bb.0: 3941; CHECK-NEXT: mflr r0 3942; CHECK-NEXT: stdu r1, -112(r1) 3943; CHECK-NEXT: std r0, 128(r1) 3944; CHECK-NEXT: .cfi_def_cfa_offset 112 3945; CHECK-NEXT: .cfi_offset lr, 16 3946; CHECK-NEXT: .cfi_offset v28, -64 3947; CHECK-NEXT: .cfi_offset v29, -48 3948; CHECK-NEXT: .cfi_offset v30, -32 3949; CHECK-NEXT: .cfi_offset v31, -16 3950; CHECK-NEXT: li r3, 48 3951; CHECK-NEXT: xxsldwi vs0, v2, v2, 3 3952; CHECK-NEXT: stvx v28, r1, r3 # 16-byte Folded Spill 3953; CHECK-NEXT: li r3, 64 3954; CHECK-NEXT: xscvspdpn f1, vs0 3955; CHECK-NEXT: stvx v29, r1, r3 # 16-byte Folded Spill 3956; CHECK-NEXT: li r3, 80 3957; CHECK-NEXT: stvx v30, r1, r3 # 16-byte Folded Spill 3958; CHECK-NEXT: li r3, 96 3959; CHECK-NEXT: vmr v30, v2 3960; CHECK-NEXT: stvx v31, r1, r3 # 16-byte Folded Spill 3961; CHECK-NEXT: vmr v31, v3 3962; CHECK-NEXT: bl llrintf 3963; CHECK-NEXT: nop 3964; CHECK-NEXT: xxswapd vs0, v30 3965; CHECK-NEXT: mtvsrd v29, r3 3966; CHECK-NEXT: xscvspdpn f1, vs0 3967; CHECK-NEXT: bl llrintf 3968; CHECK-NEXT: nop 3969; CHECK-NEXT: xscvspdpn f1, v30 3970; CHECK-NEXT: mtfprd f0, r3 3971; CHECK-NEXT: xxmrghd v29, vs0, v29 3972; CHECK-NEXT: bl llrintf 3973; CHECK-NEXT: nop 3974; CHECK-NEXT: xxsldwi vs0, v30, v30, 1 3975; CHECK-NEXT: mtvsrd v30, r3 3976; CHECK-NEXT: xscvspdpn f1, vs0 3977; CHECK-NEXT: bl llrintf 3978; CHECK-NEXT: nop 3979; CHECK-NEXT: mtfprd f0, r3 3980; CHECK-NEXT: xxmrghd v30, v30, vs0 3981; CHECK-NEXT: xxsldwi vs0, v31, v31, 3 3982; CHECK-NEXT: xscvspdpn f1, vs0 3983; CHECK-NEXT: bl llrintf 3984; CHECK-NEXT: nop 3985; CHECK-NEXT: xxswapd vs0, v31 3986; CHECK-NEXT: mtvsrd v28, r3 3987; CHECK-NEXT: xscvspdpn f1, vs0 3988; CHECK-NEXT: bl llrintf 3989; CHECK-NEXT: nop 3990; CHECK-NEXT: xscvspdpn f1, v31 3991; CHECK-NEXT: mtfprd f0, r3 3992; CHECK-NEXT: xxmrghd v28, vs0, v28 3993; CHECK-NEXT: bl llrintf 3994; CHECK-NEXT: nop 3995; CHECK-NEXT: xxsldwi vs0, v31, v31, 1 3996; CHECK-NEXT: mtvsrd v31, r3 3997; CHECK-NEXT: xscvspdpn f1, vs0 3998; CHECK-NEXT: bl llrintf 3999; CHECK-NEXT: nop 4000; CHECK-NEXT: mtfprd f0, r3 4001; CHECK-NEXT: li r3, 96 4002; CHECK-NEXT: vmr v3, v30 4003; CHECK-NEXT: vmr v2, v29 4004; CHECK-NEXT: vmr v4, v28 4005; CHECK-NEXT: xxmrghd v5, v31, vs0 4006; CHECK-NEXT: lvx v31, r1, r3 # 16-byte Folded Reload 4007; CHECK-NEXT: li r3, 80 4008; CHECK-NEXT: lvx v30, r1, r3 # 16-byte Folded Reload 4009; CHECK-NEXT: li r3, 64 4010; CHECK-NEXT: lvx v29, r1, r3 # 16-byte Folded Reload 4011; CHECK-NEXT: li r3, 48 4012; CHECK-NEXT: lvx v28, r1, r3 # 16-byte Folded Reload 4013; CHECK-NEXT: addi r1, r1, 112 4014; CHECK-NEXT: ld r0, 16(r1) 4015; CHECK-NEXT: mtlr r0 4016; CHECK-NEXT: blr 4017; 4018; FAST-LABEL: llrint_v8i64_v8f32: 4019; FAST: # %bb.0: 4020; FAST-NEXT: xxsldwi vs0, v2, v2, 3 4021; FAST-NEXT: xxswapd vs1, v2 4022; FAST-NEXT: xscvspdpn f0, vs0 4023; FAST-NEXT: xxsldwi vs2, v2, v2, 1 4024; FAST-NEXT: xxsldwi vs3, v3, v3, 3 4025; FAST-NEXT: xxswapd vs4, v3 4026; FAST-NEXT: xxsldwi vs5, v3, v3, 1 4027; FAST-NEXT: fctid f0, f0 4028; FAST-NEXT: mffprd r3, f0 4029; FAST-NEXT: xscvspdpn f0, vs1 4030; FAST-NEXT: mtfprd f1, r3 4031; FAST-NEXT: fctid f0, f0 4032; FAST-NEXT: mffprd r3, f0 4033; FAST-NEXT: mtfprd f0, r3 4034; FAST-NEXT: xxmrghd v0, vs0, vs1 4035; FAST-NEXT: xscvspdpn f0, v2 4036; FAST-NEXT: vmr v2, v0 4037; FAST-NEXT: fctid f0, f0 4038; FAST-NEXT: mffprd r3, f0 4039; FAST-NEXT: xscvspdpn f0, vs2 4040; FAST-NEXT: mtfprd f1, r3 4041; FAST-NEXT: fctid f0, f0 4042; FAST-NEXT: mffprd r3, f0 4043; FAST-NEXT: mtfprd f0, r3 4044; FAST-NEXT: xxmrghd v1, vs1, vs0 4045; FAST-NEXT: xscvspdpn f0, vs3 4046; FAST-NEXT: fctid f0, f0 4047; FAST-NEXT: mffprd r3, f0 4048; FAST-NEXT: xscvspdpn f0, vs4 4049; FAST-NEXT: mtfprd f1, r3 4050; FAST-NEXT: fctid f0, f0 4051; FAST-NEXT: mffprd r3, f0 4052; FAST-NEXT: mtfprd f0, r3 4053; FAST-NEXT: xxmrghd v4, vs0, vs1 4054; FAST-NEXT: xscvspdpn f0, v3 4055; FAST-NEXT: vmr v3, v1 4056; FAST-NEXT: fctid f0, f0 4057; FAST-NEXT: mffprd r3, f0 4058; FAST-NEXT: xscvspdpn f0, vs5 4059; FAST-NEXT: mtfprd f1, r3 4060; FAST-NEXT: fctid f0, f0 4061; FAST-NEXT: mffprd r3, f0 4062; FAST-NEXT: mtfprd f0, r3 4063; FAST-NEXT: xxmrghd v5, vs1, vs0 4064; FAST-NEXT: blr 4065 %a = call <8 x i64> @llvm.llrint.v8i64.v8f32(<8 x float> %x) 4066 ret <8 x i64> %a 4067} 4068declare <8 x i64> @llvm.llrint.v8i64.v8f32(<8 x float>) 4069 4070define <16 x i64> @llrint_v16i64_v16f32(<16 x float> %x) { 4071; BE-LABEL: llrint_v16i64_v16f32: 4072; BE: # %bb.0: 4073; BE-NEXT: mflr r0 4074; BE-NEXT: stdu r1, -304(r1) 4075; BE-NEXT: std r0, 320(r1) 4076; BE-NEXT: .cfi_def_cfa_offset 304 4077; BE-NEXT: .cfi_offset lr, 16 4078; BE-NEXT: addi r3, r1, 112 4079; BE-NEXT: stxvw4x v2, 0, r3 4080; BE-NEXT: addi r3, r1, 128 4081; BE-NEXT: stxvw4x v3, 0, r3 4082; BE-NEXT: addi r3, r1, 144 4083; BE-NEXT: stxvw4x v4, 0, r3 4084; BE-NEXT: addi r3, r1, 160 4085; BE-NEXT: stxvw4x v5, 0, r3 4086; BE-NEXT: lfs f1, 116(r1) 4087; BE-NEXT: bl llrintf 4088; BE-NEXT: nop 4089; BE-NEXT: lfs f1, 112(r1) 4090; BE-NEXT: std r3, 184(r1) 4091; BE-NEXT: bl llrintf 4092; BE-NEXT: nop 4093; BE-NEXT: lfs f1, 124(r1) 4094; BE-NEXT: std r3, 176(r1) 4095; BE-NEXT: bl llrintf 4096; BE-NEXT: nop 4097; BE-NEXT: lfs f1, 120(r1) 4098; BE-NEXT: std r3, 200(r1) 4099; BE-NEXT: bl llrintf 4100; BE-NEXT: nop 4101; BE-NEXT: lfs f1, 132(r1) 4102; BE-NEXT: std r3, 192(r1) 4103; BE-NEXT: bl llrintf 4104; BE-NEXT: nop 4105; BE-NEXT: lfs f1, 128(r1) 4106; BE-NEXT: std r3, 216(r1) 4107; BE-NEXT: bl llrintf 4108; BE-NEXT: nop 4109; BE-NEXT: lfs f1, 140(r1) 4110; BE-NEXT: std r3, 208(r1) 4111; BE-NEXT: bl llrintf 4112; BE-NEXT: nop 4113; BE-NEXT: lfs f1, 136(r1) 4114; BE-NEXT: std r3, 232(r1) 4115; BE-NEXT: bl llrintf 4116; BE-NEXT: nop 4117; BE-NEXT: lfs f1, 148(r1) 4118; BE-NEXT: std r3, 224(r1) 4119; BE-NEXT: bl llrintf 4120; BE-NEXT: nop 4121; BE-NEXT: lfs f1, 144(r1) 4122; BE-NEXT: std r3, 248(r1) 4123; BE-NEXT: bl llrintf 4124; BE-NEXT: nop 4125; BE-NEXT: lfs f1, 156(r1) 4126; BE-NEXT: std r3, 240(r1) 4127; BE-NEXT: bl llrintf 4128; BE-NEXT: nop 4129; BE-NEXT: lfs f1, 152(r1) 4130; BE-NEXT: std r3, 264(r1) 4131; BE-NEXT: bl llrintf 4132; BE-NEXT: nop 4133; BE-NEXT: lfs f1, 164(r1) 4134; BE-NEXT: std r3, 256(r1) 4135; BE-NEXT: bl llrintf 4136; BE-NEXT: nop 4137; BE-NEXT: lfs f1, 160(r1) 4138; BE-NEXT: std r3, 280(r1) 4139; BE-NEXT: bl llrintf 4140; BE-NEXT: nop 4141; BE-NEXT: lfs f1, 172(r1) 4142; BE-NEXT: std r3, 272(r1) 4143; BE-NEXT: bl llrintf 4144; BE-NEXT: nop 4145; BE-NEXT: lfs f1, 168(r1) 4146; BE-NEXT: std r3, 296(r1) 4147; BE-NEXT: bl llrintf 4148; BE-NEXT: nop 4149; BE-NEXT: std r3, 288(r1) 4150; BE-NEXT: addi r3, r1, 176 4151; BE-NEXT: lxvd2x v2, 0, r3 4152; BE-NEXT: addi r3, r1, 192 4153; BE-NEXT: lxvd2x v3, 0, r3 4154; BE-NEXT: addi r3, r1, 208 4155; BE-NEXT: lxvd2x v4, 0, r3 4156; BE-NEXT: addi r3, r1, 224 4157; BE-NEXT: lxvd2x v5, 0, r3 4158; BE-NEXT: addi r3, r1, 240 4159; BE-NEXT: lxvd2x v6, 0, r3 4160; BE-NEXT: addi r3, r1, 256 4161; BE-NEXT: lxvd2x v7, 0, r3 4162; BE-NEXT: addi r3, r1, 272 4163; BE-NEXT: lxvd2x v8, 0, r3 4164; BE-NEXT: addi r3, r1, 288 4165; BE-NEXT: lxvd2x v9, 0, r3 4166; BE-NEXT: addi r1, r1, 304 4167; BE-NEXT: ld r0, 16(r1) 4168; BE-NEXT: mtlr r0 4169; BE-NEXT: blr 4170; 4171; CHECK-LABEL: llrint_v16i64_v16f32: 4172; CHECK: # %bb.0: 4173; CHECK-NEXT: mflr r0 4174; CHECK-NEXT: stdu r1, -176(r1) 4175; CHECK-NEXT: std r0, 192(r1) 4176; CHECK-NEXT: .cfi_def_cfa_offset 176 4177; CHECK-NEXT: .cfi_offset lr, 16 4178; CHECK-NEXT: .cfi_offset v24, -128 4179; CHECK-NEXT: .cfi_offset v25, -112 4180; CHECK-NEXT: .cfi_offset v26, -96 4181; CHECK-NEXT: .cfi_offset v27, -80 4182; CHECK-NEXT: .cfi_offset v28, -64 4183; CHECK-NEXT: .cfi_offset v29, -48 4184; CHECK-NEXT: .cfi_offset v30, -32 4185; CHECK-NEXT: .cfi_offset v31, -16 4186; CHECK-NEXT: li r3, 48 4187; CHECK-NEXT: xxsldwi vs0, v2, v2, 3 4188; CHECK-NEXT: stvx v24, r1, r3 # 16-byte Folded Spill 4189; CHECK-NEXT: li r3, 64 4190; CHECK-NEXT: xscvspdpn f1, vs0 4191; CHECK-NEXT: stvx v25, r1, r3 # 16-byte Folded Spill 4192; CHECK-NEXT: li r3, 80 4193; CHECK-NEXT: stvx v26, r1, r3 # 16-byte Folded Spill 4194; CHECK-NEXT: li r3, 96 4195; CHECK-NEXT: vmr v26, v3 4196; CHECK-NEXT: stvx v27, r1, r3 # 16-byte Folded Spill 4197; CHECK-NEXT: li r3, 112 4198; CHECK-NEXT: stvx v28, r1, r3 # 16-byte Folded Spill 4199; CHECK-NEXT: li r3, 128 4200; CHECK-NEXT: vmr v28, v4 4201; CHECK-NEXT: stvx v29, r1, r3 # 16-byte Folded Spill 4202; CHECK-NEXT: li r3, 144 4203; CHECK-NEXT: vmr v29, v2 4204; CHECK-NEXT: stvx v30, r1, r3 # 16-byte Folded Spill 4205; CHECK-NEXT: li r3, 160 4206; CHECK-NEXT: stvx v31, r1, r3 # 16-byte Folded Spill 4207; CHECK-NEXT: vmr v31, v5 4208; CHECK-NEXT: bl llrintf 4209; CHECK-NEXT: nop 4210; CHECK-NEXT: xxswapd vs0, v29 4211; CHECK-NEXT: mtvsrd v30, r3 4212; CHECK-NEXT: xscvspdpn f1, vs0 4213; CHECK-NEXT: bl llrintf 4214; CHECK-NEXT: nop 4215; CHECK-NEXT: xscvspdpn f1, v29 4216; CHECK-NEXT: mtfprd f0, r3 4217; CHECK-NEXT: xxmrghd v30, vs0, v30 4218; CHECK-NEXT: bl llrintf 4219; CHECK-NEXT: nop 4220; CHECK-NEXT: xxsldwi vs0, v29, v29, 1 4221; CHECK-NEXT: mtvsrd v29, r3 4222; CHECK-NEXT: xscvspdpn f1, vs0 4223; CHECK-NEXT: bl llrintf 4224; CHECK-NEXT: nop 4225; CHECK-NEXT: mtfprd f0, r3 4226; CHECK-NEXT: xxmrghd v29, v29, vs0 4227; CHECK-NEXT: xxsldwi vs0, v26, v26, 3 4228; CHECK-NEXT: xscvspdpn f1, vs0 4229; CHECK-NEXT: bl llrintf 4230; CHECK-NEXT: nop 4231; CHECK-NEXT: xxswapd vs0, v26 4232; CHECK-NEXT: mtvsrd v27, r3 4233; CHECK-NEXT: xscvspdpn f1, vs0 4234; CHECK-NEXT: bl llrintf 4235; CHECK-NEXT: nop 4236; CHECK-NEXT: xscvspdpn f1, v26 4237; CHECK-NEXT: mtfprd f0, r3 4238; CHECK-NEXT: xxmrghd v27, vs0, v27 4239; CHECK-NEXT: bl llrintf 4240; CHECK-NEXT: nop 4241; CHECK-NEXT: xxsldwi vs0, v26, v26, 1 4242; CHECK-NEXT: mtvsrd v26, r3 4243; CHECK-NEXT: xscvspdpn f1, vs0 4244; CHECK-NEXT: bl llrintf 4245; CHECK-NEXT: nop 4246; CHECK-NEXT: mtfprd f0, r3 4247; CHECK-NEXT: xxmrghd v26, v26, vs0 4248; CHECK-NEXT: xxsldwi vs0, v28, v28, 3 4249; CHECK-NEXT: xscvspdpn f1, vs0 4250; CHECK-NEXT: bl llrintf 4251; CHECK-NEXT: nop 4252; CHECK-NEXT: xxswapd vs0, v28 4253; CHECK-NEXT: mtvsrd v25, r3 4254; CHECK-NEXT: xscvspdpn f1, vs0 4255; CHECK-NEXT: bl llrintf 4256; CHECK-NEXT: nop 4257; CHECK-NEXT: xscvspdpn f1, v28 4258; CHECK-NEXT: mtfprd f0, r3 4259; CHECK-NEXT: xxmrghd v25, vs0, v25 4260; CHECK-NEXT: bl llrintf 4261; CHECK-NEXT: nop 4262; CHECK-NEXT: xxsldwi vs0, v28, v28, 1 4263; CHECK-NEXT: mtvsrd v28, r3 4264; CHECK-NEXT: xscvspdpn f1, vs0 4265; CHECK-NEXT: bl llrintf 4266; CHECK-NEXT: nop 4267; CHECK-NEXT: mtfprd f0, r3 4268; CHECK-NEXT: xxmrghd v28, v28, vs0 4269; CHECK-NEXT: xxsldwi vs0, v31, v31, 3 4270; CHECK-NEXT: xscvspdpn f1, vs0 4271; CHECK-NEXT: bl llrintf 4272; CHECK-NEXT: nop 4273; CHECK-NEXT: xxswapd vs0, v31 4274; CHECK-NEXT: mtvsrd v24, r3 4275; CHECK-NEXT: xscvspdpn f1, vs0 4276; CHECK-NEXT: bl llrintf 4277; CHECK-NEXT: nop 4278; CHECK-NEXT: xscvspdpn f1, v31 4279; CHECK-NEXT: mtfprd f0, r3 4280; CHECK-NEXT: xxmrghd v24, vs0, v24 4281; CHECK-NEXT: bl llrintf 4282; CHECK-NEXT: nop 4283; CHECK-NEXT: xxsldwi vs0, v31, v31, 1 4284; CHECK-NEXT: mtvsrd v31, r3 4285; CHECK-NEXT: xscvspdpn f1, vs0 4286; CHECK-NEXT: bl llrintf 4287; CHECK-NEXT: nop 4288; CHECK-NEXT: mtfprd f0, r3 4289; CHECK-NEXT: li r3, 160 4290; CHECK-NEXT: vmr v2, v30 4291; CHECK-NEXT: vmr v3, v29 4292; CHECK-NEXT: vmr v7, v28 4293; CHECK-NEXT: vmr v4, v27 4294; CHECK-NEXT: vmr v5, v26 4295; CHECK-NEXT: vmr v6, v25 4296; CHECK-NEXT: vmr v8, v24 4297; CHECK-NEXT: xxmrghd v9, v31, vs0 4298; CHECK-NEXT: lvx v31, r1, r3 # 16-byte Folded Reload 4299; CHECK-NEXT: li r3, 144 4300; CHECK-NEXT: lvx v30, r1, r3 # 16-byte Folded Reload 4301; CHECK-NEXT: li r3, 128 4302; CHECK-NEXT: lvx v29, r1, r3 # 16-byte Folded Reload 4303; CHECK-NEXT: li r3, 112 4304; CHECK-NEXT: lvx v28, r1, r3 # 16-byte Folded Reload 4305; CHECK-NEXT: li r3, 96 4306; CHECK-NEXT: lvx v27, r1, r3 # 16-byte Folded Reload 4307; CHECK-NEXT: li r3, 80 4308; CHECK-NEXT: lvx v26, r1, r3 # 16-byte Folded Reload 4309; CHECK-NEXT: li r3, 64 4310; CHECK-NEXT: lvx v25, r1, r3 # 16-byte Folded Reload 4311; CHECK-NEXT: li r3, 48 4312; CHECK-NEXT: lvx v24, r1, r3 # 16-byte Folded Reload 4313; CHECK-NEXT: addi r1, r1, 176 4314; CHECK-NEXT: ld r0, 16(r1) 4315; CHECK-NEXT: mtlr r0 4316; CHECK-NEXT: blr 4317; 4318; FAST-LABEL: llrint_v16i64_v16f32: 4319; FAST: # %bb.0: 4320; FAST-NEXT: xxsldwi vs0, v2, v2, 3 4321; FAST-NEXT: xxswapd vs1, v2 4322; FAST-NEXT: xscvspdpn f0, vs0 4323; FAST-NEXT: xxsldwi vs2, v2, v2, 1 4324; FAST-NEXT: xxsldwi vs3, v3, v3, 3 4325; FAST-NEXT: xxswapd vs4, v3 4326; FAST-NEXT: xxsldwi vs5, v3, v3, 1 4327; FAST-NEXT: xxsldwi vs6, v4, v4, 3 4328; FAST-NEXT: xxswapd vs7, v4 4329; FAST-NEXT: xxsldwi vs8, v4, v4, 1 4330; FAST-NEXT: xxsldwi vs9, v5, v5, 3 4331; FAST-NEXT: xxswapd vs10, v5 4332; FAST-NEXT: xxsldwi vs11, v5, v5, 1 4333; FAST-NEXT: fctid f0, f0 4334; FAST-NEXT: mffprd r3, f0 4335; FAST-NEXT: xscvspdpn f0, vs1 4336; FAST-NEXT: mtfprd f1, r3 4337; FAST-NEXT: fctid f0, f0 4338; FAST-NEXT: mffprd r3, f0 4339; FAST-NEXT: mtfprd f0, r3 4340; FAST-NEXT: xxmrghd v0, vs0, vs1 4341; FAST-NEXT: xscvspdpn f0, v2 4342; FAST-NEXT: vmr v2, v0 4343; FAST-NEXT: fctid f0, f0 4344; FAST-NEXT: mffprd r3, f0 4345; FAST-NEXT: xscvspdpn f0, vs2 4346; FAST-NEXT: mtfprd f1, r3 4347; FAST-NEXT: fctid f0, f0 4348; FAST-NEXT: mffprd r3, f0 4349; FAST-NEXT: mtfprd f0, r3 4350; FAST-NEXT: xxmrghd v1, vs1, vs0 4351; FAST-NEXT: xscvspdpn f0, vs3 4352; FAST-NEXT: fctid f0, f0 4353; FAST-NEXT: mffprd r3, f0 4354; FAST-NEXT: xscvspdpn f0, vs4 4355; FAST-NEXT: mtfprd f1, r3 4356; FAST-NEXT: fctid f0, f0 4357; FAST-NEXT: mffprd r3, f0 4358; FAST-NEXT: mtfprd f0, r3 4359; FAST-NEXT: xxmrghd v10, vs0, vs1 4360; FAST-NEXT: xscvspdpn f0, v3 4361; FAST-NEXT: vmr v3, v1 4362; FAST-NEXT: fctid f0, f0 4363; FAST-NEXT: mffprd r3, f0 4364; FAST-NEXT: xscvspdpn f0, vs5 4365; FAST-NEXT: mtfprd f1, r3 4366; FAST-NEXT: fctid f0, f0 4367; FAST-NEXT: mffprd r3, f0 4368; FAST-NEXT: mtfprd f0, r3 4369; FAST-NEXT: xxmrghd v11, vs1, vs0 4370; FAST-NEXT: xscvspdpn f0, vs6 4371; FAST-NEXT: fctid f0, f0 4372; FAST-NEXT: mffprd r3, f0 4373; FAST-NEXT: xscvspdpn f0, vs7 4374; FAST-NEXT: mtfprd f1, r3 4375; FAST-NEXT: fctid f0, f0 4376; FAST-NEXT: mffprd r3, f0 4377; FAST-NEXT: mtfprd f0, r3 4378; FAST-NEXT: xxmrghd v6, vs0, vs1 4379; FAST-NEXT: xscvspdpn f0, v4 4380; FAST-NEXT: xscvspdpn f1, vs8 4381; FAST-NEXT: vmr v4, v10 4382; FAST-NEXT: fctid f0, f0 4383; FAST-NEXT: fctid f1, f1 4384; FAST-NEXT: mffprd r3, f0 4385; FAST-NEXT: mtfprd f0, r3 4386; FAST-NEXT: mffprd r3, f1 4387; FAST-NEXT: mtfprd f1, r3 4388; FAST-NEXT: xxmrghd v7, vs0, vs1 4389; FAST-NEXT: xscvspdpn f0, vs9 4390; FAST-NEXT: xscvspdpn f1, vs10 4391; FAST-NEXT: fctid f0, f0 4392; FAST-NEXT: fctid f1, f1 4393; FAST-NEXT: mffprd r3, f0 4394; FAST-NEXT: mtfprd f0, r3 4395; FAST-NEXT: mffprd r3, f1 4396; FAST-NEXT: mtfprd f1, r3 4397; FAST-NEXT: xxmrghd v8, vs1, vs0 4398; FAST-NEXT: xscvspdpn f0, v5 4399; FAST-NEXT: xscvspdpn f1, vs11 4400; FAST-NEXT: vmr v5, v11 4401; FAST-NEXT: fctid f0, f0 4402; FAST-NEXT: fctid f1, f1 4403; FAST-NEXT: mffprd r3, f0 4404; FAST-NEXT: mtfprd f0, r3 4405; FAST-NEXT: mffprd r3, f1 4406; FAST-NEXT: mtfprd f1, r3 4407; FAST-NEXT: xxmrghd v9, vs0, vs1 4408; FAST-NEXT: blr 4409 %a = call <16 x i64> @llvm.llrint.v16i64.v16f32(<16 x float> %x) 4410 ret <16 x i64> %a 4411} 4412declare <16 x i64> @llvm.llrint.v16i64.v16f32(<16 x float>) 4413 4414define <1 x i64> @llrint_v1i64_v1f64(<1 x double> %x) { 4415; BE-LABEL: llrint_v1i64_v1f64: 4416; BE: # %bb.0: 4417; BE-NEXT: mflr r0 4418; BE-NEXT: stdu r1, -112(r1) 4419; BE-NEXT: std r0, 128(r1) 4420; BE-NEXT: .cfi_def_cfa_offset 112 4421; BE-NEXT: .cfi_offset lr, 16 4422; BE-NEXT: bl llrint 4423; BE-NEXT: nop 4424; BE-NEXT: addi r1, r1, 112 4425; BE-NEXT: ld r0, 16(r1) 4426; BE-NEXT: mtlr r0 4427; BE-NEXT: blr 4428; 4429; CHECK-LABEL: llrint_v1i64_v1f64: 4430; CHECK: # %bb.0: 4431; CHECK-NEXT: mflr r0 4432; CHECK-NEXT: stdu r1, -32(r1) 4433; CHECK-NEXT: std r0, 48(r1) 4434; CHECK-NEXT: .cfi_def_cfa_offset 32 4435; CHECK-NEXT: .cfi_offset lr, 16 4436; CHECK-NEXT: bl llrint 4437; CHECK-NEXT: nop 4438; CHECK-NEXT: addi r1, r1, 32 4439; CHECK-NEXT: ld r0, 16(r1) 4440; CHECK-NEXT: mtlr r0 4441; CHECK-NEXT: blr 4442; 4443; FAST-LABEL: llrint_v1i64_v1f64: 4444; FAST: # %bb.0: 4445; FAST-NEXT: fctid f0, f1 4446; FAST-NEXT: mffprd r3, f0 4447; FAST-NEXT: blr 4448 %a = call <1 x i64> @llvm.llrint.v1i64.v1f64(<1 x double> %x) 4449 ret <1 x i64> %a 4450} 4451declare <1 x i64> @llvm.llrint.v1i64.v1f64(<1 x double>) 4452 4453define <2 x i64> @llrint_v2i64_v2f64(<2 x double> %x) { 4454; BE-LABEL: llrint_v2i64_v2f64: 4455; BE: # %bb.0: 4456; BE-NEXT: mflr r0 4457; BE-NEXT: stdu r1, -160(r1) 4458; BE-NEXT: std r0, 176(r1) 4459; BE-NEXT: .cfi_def_cfa_offset 160 4460; BE-NEXT: .cfi_offset lr, 16 4461; BE-NEXT: .cfi_offset v31, -16 4462; BE-NEXT: li r3, 144 4463; BE-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill 4464; BE-NEXT: vmr v31, v2 4465; BE-NEXT: xxlor f1, v31, v31 4466; BE-NEXT: bl llrint 4467; BE-NEXT: nop 4468; BE-NEXT: xxswapd vs1, v31 4469; BE-NEXT: std r3, 128(r1) 4470; BE-NEXT: bl llrint 4471; BE-NEXT: nop 4472; BE-NEXT: std r3, 136(r1) 4473; BE-NEXT: addi r3, r1, 128 4474; BE-NEXT: lxvd2x v2, 0, r3 4475; BE-NEXT: li r3, 144 4476; BE-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload 4477; BE-NEXT: addi r1, r1, 160 4478; BE-NEXT: ld r0, 16(r1) 4479; BE-NEXT: mtlr r0 4480; BE-NEXT: blr 4481; 4482; CHECK-LABEL: llrint_v2i64_v2f64: 4483; CHECK: # %bb.0: 4484; CHECK-NEXT: mflr r0 4485; CHECK-NEXT: stdu r1, -64(r1) 4486; CHECK-NEXT: std r0, 80(r1) 4487; CHECK-NEXT: .cfi_def_cfa_offset 64 4488; CHECK-NEXT: .cfi_offset lr, 16 4489; CHECK-NEXT: .cfi_offset v31, -16 4490; CHECK-NEXT: li r3, 48 4491; CHECK-NEXT: stvx v31, r1, r3 # 16-byte Folded Spill 4492; CHECK-NEXT: vmr v31, v2 4493; CHECK-NEXT: xxlor f1, v31, v31 4494; CHECK-NEXT: bl llrint 4495; CHECK-NEXT: nop 4496; CHECK-NEXT: xxswapd vs1, v31 4497; CHECK-NEXT: mtvsrd v31, r3 4498; CHECK-NEXT: bl llrint 4499; CHECK-NEXT: nop 4500; CHECK-NEXT: mtfprd f0, r3 4501; CHECK-NEXT: li r3, 48 4502; CHECK-NEXT: xxmrghd v2, v31, vs0 4503; CHECK-NEXT: lvx v31, r1, r3 # 16-byte Folded Reload 4504; CHECK-NEXT: addi r1, r1, 64 4505; CHECK-NEXT: ld r0, 16(r1) 4506; CHECK-NEXT: mtlr r0 4507; CHECK-NEXT: blr 4508; 4509; FAST-LABEL: llrint_v2i64_v2f64: 4510; FAST: # %bb.0: 4511; FAST-NEXT: xxlor f1, v2, v2 4512; FAST-NEXT: xxswapd vs0, v2 4513; FAST-NEXT: fctid f1, f1 4514; FAST-NEXT: fctid f0, f0 4515; FAST-NEXT: mffprd r3, f1 4516; FAST-NEXT: mtfprd f1, r3 4517; FAST-NEXT: mffprd r3, f0 4518; FAST-NEXT: mtfprd f0, r3 4519; FAST-NEXT: xxmrghd v2, vs1, vs0 4520; FAST-NEXT: blr 4521 %a = call <2 x i64> @llvm.llrint.v2i64.v2f64(<2 x double> %x) 4522 ret <2 x i64> %a 4523} 4524declare <2 x i64> @llvm.llrint.v2i64.v2f64(<2 x double>) 4525 4526define <4 x i64> @llrint_v4i64_v4f64(<4 x double> %x) { 4527; BE-LABEL: llrint_v4i64_v4f64: 4528; BE: # %bb.0: 4529; BE-NEXT: mflr r0 4530; BE-NEXT: stdu r1, -192(r1) 4531; BE-NEXT: std r0, 208(r1) 4532; BE-NEXT: .cfi_def_cfa_offset 192 4533; BE-NEXT: .cfi_offset lr, 16 4534; BE-NEXT: .cfi_offset v30, -32 4535; BE-NEXT: .cfi_offset v31, -16 4536; BE-NEXT: li r3, 160 4537; BE-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill 4538; BE-NEXT: vmr v30, v2 4539; BE-NEXT: li r3, 176 4540; BE-NEXT: xxlor f1, v30, v30 4541; BE-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill 4542; BE-NEXT: vmr v31, v3 4543; BE-NEXT: bl llrint 4544; BE-NEXT: nop 4545; BE-NEXT: xxswapd vs1, v30 4546; BE-NEXT: std r3, 128(r1) 4547; BE-NEXT: bl llrint 4548; BE-NEXT: nop 4549; BE-NEXT: xxlor f1, v31, v31 4550; BE-NEXT: std r3, 136(r1) 4551; BE-NEXT: bl llrint 4552; BE-NEXT: nop 4553; BE-NEXT: xxswapd vs1, v31 4554; BE-NEXT: std r3, 144(r1) 4555; BE-NEXT: bl llrint 4556; BE-NEXT: nop 4557; BE-NEXT: std r3, 152(r1) 4558; BE-NEXT: addi r3, r1, 128 4559; BE-NEXT: lxvd2x v2, 0, r3 4560; BE-NEXT: addi r3, r1, 144 4561; BE-NEXT: lxvd2x v3, 0, r3 4562; BE-NEXT: li r3, 176 4563; BE-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload 4564; BE-NEXT: li r3, 160 4565; BE-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload 4566; BE-NEXT: addi r1, r1, 192 4567; BE-NEXT: ld r0, 16(r1) 4568; BE-NEXT: mtlr r0 4569; BE-NEXT: blr 4570; 4571; CHECK-LABEL: llrint_v4i64_v4f64: 4572; CHECK: # %bb.0: 4573; CHECK-NEXT: mflr r0 4574; CHECK-NEXT: stdu r1, -80(r1) 4575; CHECK-NEXT: std r0, 96(r1) 4576; CHECK-NEXT: .cfi_def_cfa_offset 80 4577; CHECK-NEXT: .cfi_offset lr, 16 4578; CHECK-NEXT: .cfi_offset v30, -32 4579; CHECK-NEXT: .cfi_offset v31, -16 4580; CHECK-NEXT: li r3, 48 4581; CHECK-NEXT: stvx v30, r1, r3 # 16-byte Folded Spill 4582; CHECK-NEXT: vmr v30, v2 4583; CHECK-NEXT: li r3, 64 4584; CHECK-NEXT: xxlor f1, v30, v30 4585; CHECK-NEXT: stvx v31, r1, r3 # 16-byte Folded Spill 4586; CHECK-NEXT: vmr v31, v3 4587; CHECK-NEXT: bl llrint 4588; CHECK-NEXT: nop 4589; CHECK-NEXT: xxswapd vs1, v30 4590; CHECK-NEXT: mtvsrd v30, r3 4591; CHECK-NEXT: bl llrint 4592; CHECK-NEXT: nop 4593; CHECK-NEXT: mtfprd f0, r3 4594; CHECK-NEXT: xxlor f1, v31, v31 4595; CHECK-NEXT: xxmrghd v30, v30, vs0 4596; CHECK-NEXT: bl llrint 4597; CHECK-NEXT: nop 4598; CHECK-NEXT: xxswapd vs1, v31 4599; CHECK-NEXT: mtvsrd v31, r3 4600; CHECK-NEXT: bl llrint 4601; CHECK-NEXT: nop 4602; CHECK-NEXT: mtfprd f0, r3 4603; CHECK-NEXT: li r3, 64 4604; CHECK-NEXT: vmr v2, v30 4605; CHECK-NEXT: xxmrghd v3, v31, vs0 4606; CHECK-NEXT: lvx v31, r1, r3 # 16-byte Folded Reload 4607; CHECK-NEXT: li r3, 48 4608; CHECK-NEXT: lvx v30, r1, r3 # 16-byte Folded Reload 4609; CHECK-NEXT: addi r1, r1, 80 4610; CHECK-NEXT: ld r0, 16(r1) 4611; CHECK-NEXT: mtlr r0 4612; CHECK-NEXT: blr 4613; 4614; FAST-LABEL: llrint_v4i64_v4f64: 4615; FAST: # %bb.0: 4616; FAST-NEXT: xxswapd vs0, v2 4617; FAST-NEXT: xxlor f2, v2, v2 4618; FAST-NEXT: xxswapd vs1, v3 4619; FAST-NEXT: fctid f0, f0 4620; FAST-NEXT: fctid f2, f2 4621; FAST-NEXT: fctid f1, f1 4622; FAST-NEXT: mffprd r4, f0 4623; FAST-NEXT: xxlor f0, v3, v3 4624; FAST-NEXT: mffprd r3, f2 4625; FAST-NEXT: fctid f0, f0 4626; FAST-NEXT: mtfprd f2, r4 4627; FAST-NEXT: mffprd r5, f0 4628; FAST-NEXT: mtfprd f0, r3 4629; FAST-NEXT: mffprd r3, f1 4630; FAST-NEXT: mtfprd f1, r3 4631; FAST-NEXT: xxmrghd v2, vs0, vs2 4632; FAST-NEXT: mtfprd f0, r5 4633; FAST-NEXT: xxmrghd v3, vs0, vs1 4634; FAST-NEXT: blr 4635 %a = call <4 x i64> @llvm.llrint.v4i64.v4f64(<4 x double> %x) 4636 ret <4 x i64> %a 4637} 4638declare <4 x i64> @llvm.llrint.v4i64.v4f64(<4 x double>) 4639 4640define <8 x i64> @llrint_v8i64_v8f64(<8 x double> %x) { 4641; BE-LABEL: llrint_v8i64_v8f64: 4642; BE: # %bb.0: 4643; BE-NEXT: mflr r0 4644; BE-NEXT: stdu r1, -256(r1) 4645; BE-NEXT: std r0, 272(r1) 4646; BE-NEXT: .cfi_def_cfa_offset 256 4647; BE-NEXT: .cfi_offset lr, 16 4648; BE-NEXT: .cfi_offset v28, -64 4649; BE-NEXT: .cfi_offset v29, -48 4650; BE-NEXT: .cfi_offset v30, -32 4651; BE-NEXT: .cfi_offset v31, -16 4652; BE-NEXT: li r3, 192 4653; BE-NEXT: stxvd2x v28, r1, r3 # 16-byte Folded Spill 4654; BE-NEXT: li r3, 208 4655; BE-NEXT: vmr v28, v2 4656; BE-NEXT: xxlor f1, v28, v28 4657; BE-NEXT: stxvd2x v29, r1, r3 # 16-byte Folded Spill 4658; BE-NEXT: li r3, 224 4659; BE-NEXT: vmr v29, v3 4660; BE-NEXT: stxvd2x v30, r1, r3 # 16-byte Folded Spill 4661; BE-NEXT: li r3, 240 4662; BE-NEXT: vmr v30, v4 4663; BE-NEXT: stxvd2x v31, r1, r3 # 16-byte Folded Spill 4664; BE-NEXT: vmr v31, v5 4665; BE-NEXT: bl llrint 4666; BE-NEXT: nop 4667; BE-NEXT: xxswapd vs1, v28 4668; BE-NEXT: std r3, 128(r1) 4669; BE-NEXT: bl llrint 4670; BE-NEXT: nop 4671; BE-NEXT: xxlor f1, v29, v29 4672; BE-NEXT: std r3, 136(r1) 4673; BE-NEXT: bl llrint 4674; BE-NEXT: nop 4675; BE-NEXT: xxswapd vs1, v29 4676; BE-NEXT: std r3, 144(r1) 4677; BE-NEXT: bl llrint 4678; BE-NEXT: nop 4679; BE-NEXT: xxlor f1, v30, v30 4680; BE-NEXT: std r3, 152(r1) 4681; BE-NEXT: bl llrint 4682; BE-NEXT: nop 4683; BE-NEXT: xxswapd vs1, v30 4684; BE-NEXT: std r3, 160(r1) 4685; BE-NEXT: bl llrint 4686; BE-NEXT: nop 4687; BE-NEXT: xxlor f1, v31, v31 4688; BE-NEXT: std r3, 168(r1) 4689; BE-NEXT: bl llrint 4690; BE-NEXT: nop 4691; BE-NEXT: xxswapd vs1, v31 4692; BE-NEXT: std r3, 176(r1) 4693; BE-NEXT: bl llrint 4694; BE-NEXT: nop 4695; BE-NEXT: std r3, 184(r1) 4696; BE-NEXT: addi r3, r1, 128 4697; BE-NEXT: lxvd2x v2, 0, r3 4698; BE-NEXT: addi r3, r1, 144 4699; BE-NEXT: lxvd2x v3, 0, r3 4700; BE-NEXT: addi r3, r1, 160 4701; BE-NEXT: lxvd2x v4, 0, r3 4702; BE-NEXT: addi r3, r1, 176 4703; BE-NEXT: lxvd2x v5, 0, r3 4704; BE-NEXT: li r3, 240 4705; BE-NEXT: lxvd2x v31, r1, r3 # 16-byte Folded Reload 4706; BE-NEXT: li r3, 224 4707; BE-NEXT: lxvd2x v30, r1, r3 # 16-byte Folded Reload 4708; BE-NEXT: li r3, 208 4709; BE-NEXT: lxvd2x v29, r1, r3 # 16-byte Folded Reload 4710; BE-NEXT: li r3, 192 4711; BE-NEXT: lxvd2x v28, r1, r3 # 16-byte Folded Reload 4712; BE-NEXT: addi r1, r1, 256 4713; BE-NEXT: ld r0, 16(r1) 4714; BE-NEXT: mtlr r0 4715; BE-NEXT: blr 4716; 4717; CHECK-LABEL: llrint_v8i64_v8f64: 4718; CHECK: # %bb.0: 4719; CHECK-NEXT: mflr r0 4720; CHECK-NEXT: stdu r1, -112(r1) 4721; CHECK-NEXT: std r0, 128(r1) 4722; CHECK-NEXT: .cfi_def_cfa_offset 112 4723; CHECK-NEXT: .cfi_offset lr, 16 4724; CHECK-NEXT: .cfi_offset v28, -64 4725; CHECK-NEXT: .cfi_offset v29, -48 4726; CHECK-NEXT: .cfi_offset v30, -32 4727; CHECK-NEXT: .cfi_offset v31, -16 4728; CHECK-NEXT: li r3, 48 4729; CHECK-NEXT: stvx v28, r1, r3 # 16-byte Folded Spill 4730; CHECK-NEXT: li r3, 64 4731; CHECK-NEXT: vmr v28, v2 4732; CHECK-NEXT: stvx v29, r1, r3 # 16-byte Folded Spill 4733; CHECK-NEXT: li r3, 80 4734; CHECK-NEXT: xxlor f1, v28, v28 4735; CHECK-NEXT: vmr v29, v3 4736; CHECK-NEXT: stvx v30, r1, r3 # 16-byte Folded Spill 4737; CHECK-NEXT: li r3, 96 4738; CHECK-NEXT: vmr v30, v4 4739; CHECK-NEXT: stvx v31, r1, r3 # 16-byte Folded Spill 4740; CHECK-NEXT: vmr v31, v5 4741; CHECK-NEXT: bl llrint 4742; CHECK-NEXT: nop 4743; CHECK-NEXT: xxswapd vs1, v28 4744; CHECK-NEXT: mtvsrd v28, r3 4745; CHECK-NEXT: bl llrint 4746; CHECK-NEXT: nop 4747; CHECK-NEXT: mtfprd f0, r3 4748; CHECK-NEXT: xxlor f1, v29, v29 4749; CHECK-NEXT: xxmrghd v28, v28, vs0 4750; CHECK-NEXT: bl llrint 4751; CHECK-NEXT: nop 4752; CHECK-NEXT: xxswapd vs1, v29 4753; CHECK-NEXT: mtvsrd v29, r3 4754; CHECK-NEXT: bl llrint 4755; CHECK-NEXT: nop 4756; CHECK-NEXT: mtfprd f0, r3 4757; CHECK-NEXT: xxlor f1, v30, v30 4758; CHECK-NEXT: xxmrghd v29, v29, vs0 4759; CHECK-NEXT: bl llrint 4760; CHECK-NEXT: nop 4761; CHECK-NEXT: xxswapd vs1, v30 4762; CHECK-NEXT: mtvsrd v30, r3 4763; CHECK-NEXT: bl llrint 4764; CHECK-NEXT: nop 4765; CHECK-NEXT: mtfprd f0, r3 4766; CHECK-NEXT: xxlor f1, v31, v31 4767; CHECK-NEXT: xxmrghd v30, v30, vs0 4768; CHECK-NEXT: bl llrint 4769; CHECK-NEXT: nop 4770; CHECK-NEXT: xxswapd vs1, v31 4771; CHECK-NEXT: mtvsrd v31, r3 4772; CHECK-NEXT: bl llrint 4773; CHECK-NEXT: nop 4774; CHECK-NEXT: mtfprd f0, r3 4775; CHECK-NEXT: li r3, 96 4776; CHECK-NEXT: vmr v4, v30 4777; CHECK-NEXT: vmr v3, v29 4778; CHECK-NEXT: vmr v2, v28 4779; CHECK-NEXT: xxmrghd v5, v31, vs0 4780; CHECK-NEXT: lvx v31, r1, r3 # 16-byte Folded Reload 4781; CHECK-NEXT: li r3, 80 4782; CHECK-NEXT: lvx v30, r1, r3 # 16-byte Folded Reload 4783; CHECK-NEXT: li r3, 64 4784; CHECK-NEXT: lvx v29, r1, r3 # 16-byte Folded Reload 4785; CHECK-NEXT: li r3, 48 4786; CHECK-NEXT: lvx v28, r1, r3 # 16-byte Folded Reload 4787; CHECK-NEXT: addi r1, r1, 112 4788; CHECK-NEXT: ld r0, 16(r1) 4789; CHECK-NEXT: mtlr r0 4790; CHECK-NEXT: blr 4791; 4792; FAST-LABEL: llrint_v8i64_v8f64: 4793; FAST: # %bb.0: 4794; FAST-NEXT: xxswapd vs0, v2 4795; FAST-NEXT: xxswapd vs1, v3 4796; FAST-NEXT: xxlor f4, v2, v2 4797; FAST-NEXT: xxswapd vs2, v4 4798; FAST-NEXT: xxswapd vs3, v5 4799; FAST-NEXT: fctid f0, f0 4800; FAST-NEXT: fctid f4, f4 4801; FAST-NEXT: mffprd r4, f0 4802; FAST-NEXT: xxlor f0, v3, v3 4803; FAST-NEXT: mffprd r3, f4 4804; FAST-NEXT: fctid f0, f0 4805; FAST-NEXT: mffprd r5, f0 4806; FAST-NEXT: fctid f0, f1 4807; FAST-NEXT: mtfprd f1, r4 4808; FAST-NEXT: mffprd r6, f0 4809; FAST-NEXT: xxlor f0, v4, v4 4810; FAST-NEXT: fctid f0, f0 4811; FAST-NEXT: mtfprd f4, r6 4812; FAST-NEXT: mffprd r7, f0 4813; FAST-NEXT: fctid f0, f2 4814; FAST-NEXT: mtfprd f2, r5 4815; FAST-NEXT: mtfprd f5, r7 4816; FAST-NEXT: mffprd r8, f0 4817; FAST-NEXT: xxlor f0, v5, v5 4818; FAST-NEXT: fctid f0, f0 4819; FAST-NEXT: mtfprd f6, r8 4820; FAST-NEXT: mffprd r9, f0 4821; FAST-NEXT: mtfprd f0, r3 4822; FAST-NEXT: xxmrghd v3, vs2, vs4 4823; FAST-NEXT: xxmrghd v4, vs5, vs6 4824; FAST-NEXT: xxmrghd v2, vs0, vs1 4825; FAST-NEXT: fctid f1, f3 4826; FAST-NEXT: mtfprd f0, r9 4827; FAST-NEXT: mffprd r3, f1 4828; FAST-NEXT: mtfprd f1, r3 4829; FAST-NEXT: xxmrghd v5, vs0, vs1 4830; FAST-NEXT: blr 4831 %a = call <8 x i64> @llvm.llrint.v8i64.v8f64(<8 x double> %x) 4832 ret <8 x i64> %a 4833} 4834declare <8 x i64> @llvm.llrint.v8i64.v8f64(<8 x double>) 4835