brintos

brintos / llvm-project-archived public Read only

0
0
Text · 12.0 KiB · cd1aebf Raw
327 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple riscv32 -o - %s | FileCheck %s3; This test has been minimized from GCC Torture Suite's regstack-1.c4; and checks that RISCVInstrInfo::storeRegToStackSlot works at the basic5; level.6 7@U = external local_unnamed_addr global fp128, align 168@Y1 = external local_unnamed_addr global fp128, align 169@X = external local_unnamed_addr global fp128, align 1610@Y = external local_unnamed_addr global fp128, align 1611@T = external local_unnamed_addr global fp128, align 1612@S = external local_unnamed_addr global fp128, align 1613 14define void @main() local_unnamed_addr nounwind {15; CHECK-LABEL: main:16; CHECK:       # %bb.0:17; CHECK-NEXT:    addi sp, sp, -70418; CHECK-NEXT:    sw ra, 700(sp) # 4-byte Folded Spill19; CHECK-NEXT:    sw s0, 696(sp) # 4-byte Folded Spill20; CHECK-NEXT:    sw s1, 692(sp) # 4-byte Folded Spill21; CHECK-NEXT:    sw s2, 688(sp) # 4-byte Folded Spill22; CHECK-NEXT:    sw s3, 684(sp) # 4-byte Folded Spill23; CHECK-NEXT:    sw s4, 680(sp) # 4-byte Folded Spill24; CHECK-NEXT:    sw s5, 676(sp) # 4-byte Folded Spill25; CHECK-NEXT:    sw s6, 672(sp) # 4-byte Folded Spill26; CHECK-NEXT:    sw s7, 668(sp) # 4-byte Folded Spill27; CHECK-NEXT:    sw s8, 664(sp) # 4-byte Folded Spill28; CHECK-NEXT:    sw s9, 660(sp) # 4-byte Folded Spill29; CHECK-NEXT:    sw s10, 656(sp) # 4-byte Folded Spill30; CHECK-NEXT:    sw s11, 652(sp) # 4-byte Folded Spill31; CHECK-NEXT:    lui a0, %hi(U)32; CHECK-NEXT:    lw s9, %lo(U)(a0)33; CHECK-NEXT:    lw s10, %lo(U+4)(a0)34; CHECK-NEXT:    lw s11, %lo(U+8)(a0)35; CHECK-NEXT:    lw s5, %lo(U+12)(a0)36; CHECK-NEXT:    sw zero, 616(sp)37; CHECK-NEXT:    sw zero, 620(sp)38; CHECK-NEXT:    sw zero, 624(sp)39; CHECK-NEXT:    sw zero, 628(sp)40; CHECK-NEXT:    addi a0, sp, 63241; CHECK-NEXT:    addi a1, sp, 61642; CHECK-NEXT:    addi a2, sp, 60043; CHECK-NEXT:    sw s9, 600(sp)44; CHECK-NEXT:    sw s10, 604(sp)45; CHECK-NEXT:    sw s11, 608(sp)46; CHECK-NEXT:    sw s5, 612(sp)47; CHECK-NEXT:    call __subtf348; CHECK-NEXT:    lw s1, 632(sp)49; CHECK-NEXT:    lw s2, 636(sp)50; CHECK-NEXT:    lw s3, 640(sp)51; CHECK-NEXT:    lw s4, 644(sp)52; CHECK-NEXT:    sw s9, 552(sp)53; CHECK-NEXT:    sw s10, 556(sp)54; CHECK-NEXT:    sw s11, 560(sp)55; CHECK-NEXT:    sw s5, 564(sp)56; CHECK-NEXT:    addi a0, sp, 58457; CHECK-NEXT:    addi a1, sp, 56858; CHECK-NEXT:    addi a2, sp, 55259; CHECK-NEXT:    sw s1, 568(sp)60; CHECK-NEXT:    sw s2, 572(sp)61; CHECK-NEXT:    sw s3, 576(sp)62; CHECK-NEXT:    sw s4, 580(sp)63; CHECK-NEXT:    call __subtf364; CHECK-NEXT:    lw a0, 584(sp)65; CHECK-NEXT:    sw a0, 52(sp) # 4-byte Folded Spill66; CHECK-NEXT:    lw a0, 588(sp)67; CHECK-NEXT:    sw a0, 48(sp) # 4-byte Folded Spill68; CHECK-NEXT:    lw a0, 592(sp)69; CHECK-NEXT:    sw a0, 44(sp) # 4-byte Folded Spill70; CHECK-NEXT:    lw a0, 596(sp)71; CHECK-NEXT:    sw a0, 40(sp) # 4-byte Folded Spill72; CHECK-NEXT:    sw zero, 504(sp)73; CHECK-NEXT:    sw zero, 508(sp)74; CHECK-NEXT:    sw zero, 512(sp)75; CHECK-NEXT:    sw zero, 516(sp)76; CHECK-NEXT:    addi a0, sp, 53677; CHECK-NEXT:    addi a1, sp, 52078; CHECK-NEXT:    addi a2, sp, 50479; CHECK-NEXT:    sw s9, 520(sp)80; CHECK-NEXT:    sw s10, 524(sp)81; CHECK-NEXT:    sw s11, 528(sp)82; CHECK-NEXT:    sw s5, 532(sp)83; CHECK-NEXT:    call __addtf384; CHECK-NEXT:    lw s0, 536(sp)85; CHECK-NEXT:    lw s6, 540(sp)86; CHECK-NEXT:    lw s7, 544(sp)87; CHECK-NEXT:    lw s8, 548(sp)88; CHECK-NEXT:    lui a0, %hi(Y1)89; CHECK-NEXT:    lw a1, %lo(Y1)(a0)90; CHECK-NEXT:    sw a1, 20(sp) # 4-byte Folded Spill91; CHECK-NEXT:    lw a2, %lo(Y1+4)(a0)92; CHECK-NEXT:    sw a2, 16(sp) # 4-byte Folded Spill93; CHECK-NEXT:    lw a3, %lo(Y1+8)(a0)94; CHECK-NEXT:    sw a3, 12(sp) # 4-byte Folded Spill95; CHECK-NEXT:    lw a0, %lo(Y1+12)(a0)96; CHECK-NEXT:    sw a0, 8(sp) # 4-byte Folded Spill97; CHECK-NEXT:    sw a1, 312(sp)98; CHECK-NEXT:    sw a2, 316(sp)99; CHECK-NEXT:    sw a3, 320(sp)100; CHECK-NEXT:    sw a0, 324(sp)101; CHECK-NEXT:    addi a0, sp, 344102; CHECK-NEXT:    addi a1, sp, 328103; CHECK-NEXT:    addi a2, sp, 312104; CHECK-NEXT:    sw s1, 328(sp)105; CHECK-NEXT:    sw s2, 332(sp)106; CHECK-NEXT:    sw s3, 336(sp)107; CHECK-NEXT:    sw s4, 340(sp)108; CHECK-NEXT:    call __multf3109; CHECK-NEXT:    lw a0, 344(sp)110; CHECK-NEXT:    sw a0, 68(sp) # 4-byte Folded Spill111; CHECK-NEXT:    lw a0, 348(sp)112; CHECK-NEXT:    sw a0, 64(sp) # 4-byte Folded Spill113; CHECK-NEXT:    lw a0, 352(sp)114; CHECK-NEXT:    sw a0, 60(sp) # 4-byte Folded Spill115; CHECK-NEXT:    lw a0, 356(sp)116; CHECK-NEXT:    sw a0, 56(sp) # 4-byte Folded Spill117; CHECK-NEXT:    sw s9, 472(sp)118; CHECK-NEXT:    sw s10, 476(sp)119; CHECK-NEXT:    sw s11, 480(sp)120; CHECK-NEXT:    sw s5, 484(sp)121; CHECK-NEXT:    addi a0, sp, 488122; CHECK-NEXT:    addi a1, sp, 472123; CHECK-NEXT:    addi a2, sp, 456124; CHECK-NEXT:    sw s0, 456(sp)125; CHECK-NEXT:    sw s6, 460(sp)126; CHECK-NEXT:    sw s7, 464(sp)127; CHECK-NEXT:    sw s8, 468(sp)128; CHECK-NEXT:    call __addtf3129; CHECK-NEXT:    lw a3, 488(sp)130; CHECK-NEXT:    lw a4, 492(sp)131; CHECK-NEXT:    lw a5, 496(sp)132; CHECK-NEXT:    lw a6, 500(sp)133; CHECK-NEXT:    sw zero, 424(sp)134; CHECK-NEXT:    sw zero, 428(sp)135; CHECK-NEXT:    sw zero, 432(sp)136; CHECK-NEXT:    sw zero, 436(sp)137; CHECK-NEXT:    addi a0, sp, 440138; CHECK-NEXT:    addi a1, sp, 424139; CHECK-NEXT:    addi a2, sp, 408140; CHECK-NEXT:    sw a3, 408(sp)141; CHECK-NEXT:    sw a4, 412(sp)142; CHECK-NEXT:    sw a5, 416(sp)143; CHECK-NEXT:    sw a6, 420(sp)144; CHECK-NEXT:    call __subtf3145; CHECK-NEXT:    lw a0, 448(sp)146; CHECK-NEXT:    lw a1, 452(sp)147; CHECK-NEXT:    lw a2, 440(sp)148; CHECK-NEXT:    lw a3, 444(sp)149; CHECK-NEXT:    lui a4, %hi(X)150; CHECK-NEXT:    sw a1, %lo(X+12)(a4)151; CHECK-NEXT:    sw a0, %lo(X+8)(a4)152; CHECK-NEXT:    sw a3, %lo(X+4)(a4)153; CHECK-NEXT:    sw a2, %lo(X)(a4)154; CHECK-NEXT:    lw s5, 20(sp) # 4-byte Folded Reload155; CHECK-NEXT:    sw s5, 216(sp)156; CHECK-NEXT:    lw s9, 16(sp) # 4-byte Folded Reload157; CHECK-NEXT:    sw s9, 220(sp)158; CHECK-NEXT:    lw s10, 12(sp) # 4-byte Folded Reload159; CHECK-NEXT:    sw s10, 224(sp)160; CHECK-NEXT:    lw s11, 8(sp) # 4-byte Folded Reload161; CHECK-NEXT:    sw s11, 228(sp)162; CHECK-NEXT:    addi a0, sp, 248163; CHECK-NEXT:    addi a1, sp, 232164; CHECK-NEXT:    addi a2, sp, 216165; CHECK-NEXT:    lw s1, 52(sp) # 4-byte Folded Reload166; CHECK-NEXT:    sw s1, 232(sp)167; CHECK-NEXT:    lw s2, 48(sp) # 4-byte Folded Reload168; CHECK-NEXT:    sw s2, 236(sp)169; CHECK-NEXT:    lw s3, 44(sp) # 4-byte Folded Reload170; CHECK-NEXT:    sw s3, 240(sp)171; CHECK-NEXT:    lw s4, 40(sp) # 4-byte Folded Reload172; CHECK-NEXT:    sw s4, 244(sp)173; CHECK-NEXT:    call __multf3174; CHECK-NEXT:    lw a0, 248(sp)175; CHECK-NEXT:    sw a0, 36(sp) # 4-byte Folded Spill176; CHECK-NEXT:    lw a0, 252(sp)177; CHECK-NEXT:    sw a0, 32(sp) # 4-byte Folded Spill178; CHECK-NEXT:    lw a0, 256(sp)179; CHECK-NEXT:    sw a0, 28(sp) # 4-byte Folded Spill180; CHECK-NEXT:    lw a0, 260(sp)181; CHECK-NEXT:    sw a0, 24(sp) # 4-byte Folded Spill182; CHECK-NEXT:    sw zero, 360(sp)183; CHECK-NEXT:    sw zero, 364(sp)184; CHECK-NEXT:    sw zero, 368(sp)185; CHECK-NEXT:    sw zero, 372(sp)186; CHECK-NEXT:    addi a0, sp, 392187; CHECK-NEXT:    addi a1, sp, 376188; CHECK-NEXT:    addi a2, sp, 360189; CHECK-NEXT:    sw s0, 376(sp)190; CHECK-NEXT:    sw s6, 380(sp)191; CHECK-NEXT:    sw s7, 384(sp)192; CHECK-NEXT:    sw s8, 388(sp)193; CHECK-NEXT:    call __multf3194; CHECK-NEXT:    lw a0, 400(sp)195; CHECK-NEXT:    lw a1, 404(sp)196; CHECK-NEXT:    lw a2, 392(sp)197; CHECK-NEXT:    lw a3, 396(sp)198; CHECK-NEXT:    lui a4, %hi(S)199; CHECK-NEXT:    sw a1, %lo(S+12)(a4)200; CHECK-NEXT:    sw a0, %lo(S+8)(a4)201; CHECK-NEXT:    sw a3, %lo(S+4)(a4)202; CHECK-NEXT:    sw a2, %lo(S)(a4)203; CHECK-NEXT:    sw s1, 264(sp)204; CHECK-NEXT:    sw s2, 268(sp)205; CHECK-NEXT:    sw s3, 272(sp)206; CHECK-NEXT:    sw s4, 276(sp)207; CHECK-NEXT:    addi a0, sp, 296208; CHECK-NEXT:    addi a1, sp, 280209; CHECK-NEXT:    addi a2, sp, 264210; CHECK-NEXT:    lw a3, 68(sp) # 4-byte Folded Reload211; CHECK-NEXT:    sw a3, 280(sp)212; CHECK-NEXT:    lw a3, 64(sp) # 4-byte Folded Reload213; CHECK-NEXT:    sw a3, 284(sp)214; CHECK-NEXT:    lw a3, 60(sp) # 4-byte Folded Reload215; CHECK-NEXT:    sw a3, 288(sp)216; CHECK-NEXT:    lw a3, 56(sp) # 4-byte Folded Reload217; CHECK-NEXT:    sw a3, 292(sp)218; CHECK-NEXT:    call __subtf3219; CHECK-NEXT:    lw a0, 304(sp)220; CHECK-NEXT:    lw a1, 308(sp)221; CHECK-NEXT:    lw a2, 296(sp)222; CHECK-NEXT:    lw a3, 300(sp)223; CHECK-NEXT:    lui a4, %hi(T)224; CHECK-NEXT:    sw a1, %lo(T+12)(a4)225; CHECK-NEXT:    sw a0, %lo(T+8)(a4)226; CHECK-NEXT:    sw a3, %lo(T+4)(a4)227; CHECK-NEXT:    sw a2, %lo(T)(a4)228; CHECK-NEXT:    sw zero, 168(sp)229; CHECK-NEXT:    sw zero, 172(sp)230; CHECK-NEXT:    sw zero, 176(sp)231; CHECK-NEXT:    sw zero, 180(sp)232; CHECK-NEXT:    addi a0, sp, 200233; CHECK-NEXT:    addi a1, sp, 184234; CHECK-NEXT:    addi a2, sp, 168235; CHECK-NEXT:    lw a3, 36(sp) # 4-byte Folded Reload236; CHECK-NEXT:    sw a3, 184(sp)237; CHECK-NEXT:    lw a3, 32(sp) # 4-byte Folded Reload238; CHECK-NEXT:    sw a3, 188(sp)239; CHECK-NEXT:    lw a3, 28(sp) # 4-byte Folded Reload240; CHECK-NEXT:    sw a3, 192(sp)241; CHECK-NEXT:    lw a3, 24(sp) # 4-byte Folded Reload242; CHECK-NEXT:    sw a3, 196(sp)243; CHECK-NEXT:    call __addtf3244; CHECK-NEXT:    lw a0, 208(sp)245; CHECK-NEXT:    lw a1, 212(sp)246; CHECK-NEXT:    lw a2, 200(sp)247; CHECK-NEXT:    lw a3, 204(sp)248; CHECK-NEXT:    lui a4, %hi(Y)249; CHECK-NEXT:    sw a1, %lo(Y+12)(a4)250; CHECK-NEXT:    sw a0, %lo(Y+8)(a4)251; CHECK-NEXT:    sw a3, %lo(Y+4)(a4)252; CHECK-NEXT:    sw a2, %lo(Y)(a4)253; CHECK-NEXT:    sw zero, 120(sp)254; CHECK-NEXT:    sw zero, 124(sp)255; CHECK-NEXT:    sw zero, 128(sp)256; CHECK-NEXT:    sw zero, 132(sp)257; CHECK-NEXT:    addi a0, sp, 152258; CHECK-NEXT:    addi a1, sp, 136259; CHECK-NEXT:    addi a2, sp, 120260; CHECK-NEXT:    sw s5, 136(sp)261; CHECK-NEXT:    sw s9, 140(sp)262; CHECK-NEXT:    sw s10, 144(sp)263; CHECK-NEXT:    sw s11, 148(sp)264; CHECK-NEXT:    call __multf3265; CHECK-NEXT:    lw a3, 152(sp)266; CHECK-NEXT:    lw a4, 156(sp)267; CHECK-NEXT:    lw a5, 160(sp)268; CHECK-NEXT:    lw a6, 164(sp)269; CHECK-NEXT:    lui a2, 786400270; CHECK-NEXT:    addi a0, sp, 104271; CHECK-NEXT:    addi a1, sp, 88272; CHECK-NEXT:    sw zero, 72(sp)273; CHECK-NEXT:    sw zero, 76(sp)274; CHECK-NEXT:    sw zero, 80(sp)275; CHECK-NEXT:    sw a2, 84(sp)276; CHECK-NEXT:    addi a2, sp, 72277; CHECK-NEXT:    sw a3, 88(sp)278; CHECK-NEXT:    sw a4, 92(sp)279; CHECK-NEXT:    sw a5, 96(sp)280; CHECK-NEXT:    sw a6, 100(sp)281; CHECK-NEXT:    call __addtf3282; CHECK-NEXT:    lw a0, 112(sp)283; CHECK-NEXT:    lw a1, 116(sp)284; CHECK-NEXT:    lw a2, 104(sp)285; CHECK-NEXT:    lw a3, 108(sp)286; CHECK-NEXT:    lui a4, %hi(Y1)287; CHECK-NEXT:    sw a0, %lo(Y1+8)(a4)288; CHECK-NEXT:    sw a1, %lo(Y1+12)(a4)289; CHECK-NEXT:    sw a2, %lo(Y1)(a4)290; CHECK-NEXT:    sw a3, %lo(Y1+4)(a4)291; CHECK-NEXT:    lw ra, 700(sp) # 4-byte Folded Reload292; CHECK-NEXT:    lw s0, 696(sp) # 4-byte Folded Reload293; CHECK-NEXT:    lw s1, 692(sp) # 4-byte Folded Reload294; CHECK-NEXT:    lw s2, 688(sp) # 4-byte Folded Reload295; CHECK-NEXT:    lw s3, 684(sp) # 4-byte Folded Reload296; CHECK-NEXT:    lw s4, 680(sp) # 4-byte Folded Reload297; CHECK-NEXT:    lw s5, 676(sp) # 4-byte Folded Reload298; CHECK-NEXT:    lw s6, 672(sp) # 4-byte Folded Reload299; CHECK-NEXT:    lw s7, 668(sp) # 4-byte Folded Reload300; CHECK-NEXT:    lw s8, 664(sp) # 4-byte Folded Reload301; CHECK-NEXT:    lw s9, 660(sp) # 4-byte Folded Reload302; CHECK-NEXT:    lw s10, 656(sp) # 4-byte Folded Reload303; CHECK-NEXT:    lw s11, 652(sp) # 4-byte Folded Reload304; CHECK-NEXT:    addi sp, sp, 704305; CHECK-NEXT:    ret306  %1 = load fp128, ptr @U, align 16307  %2 = fsub fp128 0xL00000000000000000000000000000000, %1308  %3 = fsub fp128 %2, %1309  %4 = fadd fp128 %1, 0xL00000000000000000000000000000000310  %5 = load fp128, ptr @Y1, align 16311  %6 = fmul fp128 %2, %5312  %7 = fadd fp128 %1, %4313  %8 = fsub fp128 0xL00000000000000000000000000000000, %7314  store fp128 %8, ptr @X, align 16315  %9 = fmul fp128 %3, %5316  %10 = fmul fp128 0xL00000000000000000000000000000000, %4317  store fp128 %10, ptr @S, align 16318  %11 = fsub fp128 %6, %3319  store fp128 %11, ptr @T, align 16320  %12 = fadd fp128 0xL00000000000000000000000000000000, %9321  store fp128 %12, ptr @Y, align 16322  %13 = fmul fp128 0xL00000000000000000000000000000000, %5323  %14 = fadd fp128 %13, 0xL0000000000000000BFFE000000000000324  store fp128 %14, ptr @Y1, align 16325  ret void326}327