brintos

brintos / llvm-project-archived public Read only

0
0
Text · 16.5 KiB · d85752e Raw
533 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc < %s --mtriple=xtensa | FileCheck %s3 4define void @vararg(...) {5; CHECK-LABEL: vararg:6; CHECK:         .cfi_startproc7; CHECK-NEXT:  # %bb.0: # %entry8; CHECK-NEXT:    addi a8, a1, -329; CHECK-NEXT:    or a1, a8, a810; CHECK-NEXT:    .cfi_def_cfa_offset 3211; CHECK-NEXT:    s32i a7, a1, 2012; CHECK-NEXT:    s32i a6, a1, 1613; CHECK-NEXT:    s32i a5, a1, 1214; CHECK-NEXT:    s32i a4, a1, 815; CHECK-NEXT:    s32i a3, a1, 416; CHECK-NEXT:    s32i a2, a1, 017; CHECK-NEXT:    addi a8, a1, 3218; CHECK-NEXT:    or a1, a8, a819; CHECK-NEXT:    ret20entry:21  ret void22}23 24declare void @llvm.va_start(ptr) nounwind25declare void @llvm.va_end(ptr) nounwind26declare void @f_i32(i32) nounwind27declare void @f_i64(i64) nounwind28 29define void @vararg_fixed_0(...) nounwind {30; CHECK-LABEL: vararg_fixed_0:31; CHECK:       # %bb.0: # %entry32; CHECK-NEXT:    addi a8, a1, -4833; CHECK-NEXT:    or a1, a8, a834; CHECK-NEXT:    s32i a0, a1, 8 # 4-byte Folded Spill35; CHECK-NEXT:    s32i a12, a1, 4 # 4-byte Folded Spill36; CHECK-NEXT:    s32i a7, a1, 3237; CHECK-NEXT:    s32i a6, a1, 2838; CHECK-NEXT:    s32i a5, a1, 2439; CHECK-NEXT:    s32i a4, a1, 2040; CHECK-NEXT:    s32i a3, a1, 1641; CHECK-NEXT:    s32i a2, a1, 1242; CHECK-NEXT:    addi a10, a1, 1243; CHECK-NEXT:    s32i a10, a1, 444; CHECK-NEXT:    addi a8, a1, 4845; CHECK-NEXT:    addi a8, a8, -3246; CHECK-NEXT:    s32i a8, a1, 047; CHECK-NEXT:    movi a9, 448; CHECK-NEXT:    movi a12, 2449; CHECK-NEXT:    blt a12, a9, .LBB1_250; CHECK-NEXT:  # %bb.1: # %entry51; CHECK-NEXT:    or a8, a10, a1052; CHECK-NEXT:  .LBB1_2: # %entry53; CHECK-NEXT:    bge a12, a9, .LBB1_454; CHECK-NEXT:  # %bb.3:55; CHECK-NEXT:    movi a9, 4056; CHECK-NEXT:  .LBB1_4: # %entry57; CHECK-NEXT:    s32i a9, a1, 858; CHECK-NEXT:    add a8, a9, a859; CHECK-NEXT:    addi a8, a8, -460; CHECK-NEXT:    l32i a2, a8, 061; CHECK-NEXT:    l32r a8, .LCPI1_062; CHECK-NEXT:    callx0 a863; CHECK-NEXT:    l32i a7, a1, 864; CHECK-NEXT:    addi a10, a7, 465; CHECK-NEXT:    l32i a9, a1, 466; CHECK-NEXT:    l32i a8, a1, 067; CHECK-NEXT:    or a11, a8, a868; CHECK-NEXT:    blt a12, a10, .LBB1_669; CHECK-NEXT:  # %bb.5: # %entry70; CHECK-NEXT:    or a11, a9, a971; CHECK-NEXT:  .LBB1_6: # %entry72; CHECK-NEXT:    bge a12, a10, .LBB1_873; CHECK-NEXT:  # %bb.7:74; CHECK-NEXT:    addi a10, a7, 4075; CHECK-NEXT:  .LBB1_8: # %entry76; CHECK-NEXT:    s32i a10, a1, 877; CHECK-NEXT:    add a10, a10, a1178; CHECK-NEXT:    addi a7, a10, -479; CHECK-NEXT:    l32i a11, a1, 880; CHECK-NEXT:    addi a10, a11, 481; CHECK-NEXT:    blt a12, a10, .LBB1_1082; CHECK-NEXT:  # %bb.9: # %entry83; CHECK-NEXT:    or a8, a9, a984; CHECK-NEXT:  .LBB1_10: # %entry85; CHECK-NEXT:    l32i a2, a7, 086; CHECK-NEXT:    bge a12, a10, .LBB1_1287; CHECK-NEXT:  # %bb.11:88; CHECK-NEXT:    addi a10, a11, 4089; CHECK-NEXT:  .LBB1_12: # %entry90; CHECK-NEXT:    s32i a10, a1, 891; CHECK-NEXT:    add a8, a10, a892; CHECK-NEXT:    addi a8, a8, -493; CHECK-NEXT:    l32i a3, a8, 094; CHECK-NEXT:    l32r a8, .LCPI1_195; CHECK-NEXT:    callx0 a896; CHECK-NEXT:    l32i a12, a1, 4 # 4-byte Folded Reload97; CHECK-NEXT:    l32i a0, a1, 8 # 4-byte Folded Reload98; CHECK-NEXT:    addi a8, a1, 4899; CHECK-NEXT:    or a1, a8, a8100; CHECK-NEXT:    ret101entry:102  %list = alloca ptr, align 4103  call void @llvm.va_start(ptr %list)104 105  %0 = va_arg ptr %list, i32106  call void @f_i32(i32 %0)107  %1 = va_arg ptr %list, i64108  call void @f_i64(i64 %1)109 110  call void @llvm.va_end(ptr %list)111  ret void112}113 114define void @vararg_fixed_1(i32 %a1, ...) nounwind {115; CHECK-LABEL: vararg_fixed_1:116; CHECK:       # %bb.0: # %entry117; CHECK-NEXT:    addi a8, a1, -32118; CHECK-NEXT:    or a1, a8, a8119; CHECK-NEXT:    s32i a0, a1, 8 # 4-byte Folded Spill120; CHECK-NEXT:    s32i a12, a1, 4 # 4-byte Folded Spill121; CHECK-NEXT:    s32i a7, a1, 28122; CHECK-NEXT:    s32i a6, a1, 24123; CHECK-NEXT:    s32i a5, a1, 20124; CHECK-NEXT:    s32i a4, a1, 16125; CHECK-NEXT:    s32i a3, a1, 12126; CHECK-NEXT:    addi a10, a1, 12127; CHECK-NEXT:    s32i a10, a1, 4128; CHECK-NEXT:    addi a8, a1, 32129; CHECK-NEXT:    addi a8, a8, -32130; CHECK-NEXT:    s32i a8, a1, 0131; CHECK-NEXT:    movi a9, 8132; CHECK-NEXT:    movi a12, 24133; CHECK-NEXT:    blt a12, a9, .LBB2_2134; CHECK-NEXT:  # %bb.1: # %entry135; CHECK-NEXT:    or a8, a10, a10136; CHECK-NEXT:  .LBB2_2: # %entry137; CHECK-NEXT:    bge a12, a9, .LBB2_4138; CHECK-NEXT:  # %bb.3:139; CHECK-NEXT:    movi a9, 44140; CHECK-NEXT:  .LBB2_4: # %entry141; CHECK-NEXT:    s32i a9, a1, 8142; CHECK-NEXT:    add a8, a9, a8143; CHECK-NEXT:    addi a8, a8, -4144; CHECK-NEXT:    l32i a8, a8, 0145; CHECK-NEXT:    add a2, a8, a2146; CHECK-NEXT:    l32r a8, .LCPI2_0147; CHECK-NEXT:    callx0 a8148; CHECK-NEXT:    l32i a7, a1, 8149; CHECK-NEXT:    addi a10, a7, 4150; CHECK-NEXT:    l32i a9, a1, 4151; CHECK-NEXT:    l32i a8, a1, 0152; CHECK-NEXT:    or a11, a8, a8153; CHECK-NEXT:    blt a12, a10, .LBB2_6154; CHECK-NEXT:  # %bb.5: # %entry155; CHECK-NEXT:    or a11, a9, a9156; CHECK-NEXT:  .LBB2_6: # %entry157; CHECK-NEXT:    bge a12, a10, .LBB2_8158; CHECK-NEXT:  # %bb.7:159; CHECK-NEXT:    addi a10, a7, 40160; CHECK-NEXT:  .LBB2_8: # %entry161; CHECK-NEXT:    s32i a10, a1, 8162; CHECK-NEXT:    add a10, a10, a11163; CHECK-NEXT:    addi a7, a10, -4164; CHECK-NEXT:    l32i a11, a1, 8165; CHECK-NEXT:    addi a10, a11, 4166; CHECK-NEXT:    blt a12, a10, .LBB2_10167; CHECK-NEXT:  # %bb.9: # %entry168; CHECK-NEXT:    or a8, a9, a9169; CHECK-NEXT:  .LBB2_10: # %entry170; CHECK-NEXT:    l32i a2, a7, 0171; CHECK-NEXT:    bge a12, a10, .LBB2_12172; CHECK-NEXT:  # %bb.11:173; CHECK-NEXT:    addi a10, a11, 40174; CHECK-NEXT:  .LBB2_12: # %entry175; CHECK-NEXT:    s32i a10, a1, 8176; CHECK-NEXT:    add a8, a10, a8177; CHECK-NEXT:    addi a8, a8, -4178; CHECK-NEXT:    l32i a3, a8, 0179; CHECK-NEXT:    l32r a8, .LCPI2_1180; CHECK-NEXT:    callx0 a8181; CHECK-NEXT:    l32i a12, a1, 4 # 4-byte Folded Reload182; CHECK-NEXT:    l32i a0, a1, 8 # 4-byte Folded Reload183; CHECK-NEXT:    addi a8, a1, 32184; CHECK-NEXT:    or a1, a8, a8185; CHECK-NEXT:    ret186entry:187  %list = alloca ptr, align 4188  call void @llvm.va_start(ptr %list)189 190  %va32 = va_arg ptr %list, i32191  %sum = add nsw i32 %va32, %a1192  call void @f_i32(i32 %sum)193 194  %va64 = va_arg ptr %list, i64195  call void @f_i64(i64 %va64)196 197  call void @llvm.va_end(ptr %list)198  ret void199}200 201define void @vararg_fixed_4(i32 %a1, i32 %a2, i32 %a3, i32 %a4, ...) nounwind {202; CHECK-LABEL: vararg_fixed_4:203; CHECK:       # %bb.0: # %entry204; CHECK-NEXT:    addi a8, a1, -32205; CHECK-NEXT:    or a1, a8, a8206; CHECK-NEXT:    s32i a0, a1, 8 # 4-byte Folded Spill207; CHECK-NEXT:    s32i a12, a1, 4 # 4-byte Folded Spill208; CHECK-NEXT:    s32i a7, a1, 16209; CHECK-NEXT:    s32i a6, a1, 12210; CHECK-NEXT:    addi a10, a1, 12211; CHECK-NEXT:    s32i a10, a1, 4212; CHECK-NEXT:    addi a8, a1, 32213; CHECK-NEXT:    addi a8, a8, -32214; CHECK-NEXT:    s32i a8, a1, 0215; CHECK-NEXT:    movi a9, 20216; CHECK-NEXT:    movi a12, 24217; CHECK-NEXT:    blt a12, a9, .LBB3_2218; CHECK-NEXT:  # %bb.1: # %entry219; CHECK-NEXT:    or a8, a10, a10220; CHECK-NEXT:  .LBB3_2: # %entry221; CHECK-NEXT:    bge a12, a9, .LBB3_4222; CHECK-NEXT:  # %bb.3:223; CHECK-NEXT:    movi a9, 56224; CHECK-NEXT:  .LBB3_4: # %entry225; CHECK-NEXT:    s32i a9, a1, 8226; CHECK-NEXT:    add a8, a9, a8227; CHECK-NEXT:    addi a8, a8, -4228; CHECK-NEXT:    l32i a8, a8, 0229; CHECK-NEXT:    add a2, a8, a2230; CHECK-NEXT:    l32r a8, .LCPI3_0231; CHECK-NEXT:    callx0 a8232; CHECK-NEXT:    l32i a7, a1, 8233; CHECK-NEXT:    addi a10, a7, 4234; CHECK-NEXT:    l32i a9, a1, 4235; CHECK-NEXT:    l32i a8, a1, 0236; CHECK-NEXT:    or a11, a8, a8237; CHECK-NEXT:    blt a12, a10, .LBB3_6238; CHECK-NEXT:  # %bb.5: # %entry239; CHECK-NEXT:    or a11, a9, a9240; CHECK-NEXT:  .LBB3_6: # %entry241; CHECK-NEXT:    bge a12, a10, .LBB3_8242; CHECK-NEXT:  # %bb.7:243; CHECK-NEXT:    addi a10, a7, 40244; CHECK-NEXT:  .LBB3_8: # %entry245; CHECK-NEXT:    s32i a10, a1, 8246; CHECK-NEXT:    add a10, a10, a11247; CHECK-NEXT:    addi a7, a10, -4248; CHECK-NEXT:    l32i a11, a1, 8249; CHECK-NEXT:    addi a10, a11, 4250; CHECK-NEXT:    blt a12, a10, .LBB3_10251; CHECK-NEXT:  # %bb.9: # %entry252; CHECK-NEXT:    or a8, a9, a9253; CHECK-NEXT:  .LBB3_10: # %entry254; CHECK-NEXT:    l32i a2, a7, 0255; CHECK-NEXT:    bge a12, a10, .LBB3_12256; CHECK-NEXT:  # %bb.11:257; CHECK-NEXT:    addi a10, a11, 40258; CHECK-NEXT:  .LBB3_12: # %entry259; CHECK-NEXT:    s32i a10, a1, 8260; CHECK-NEXT:    add a8, a10, a8261; CHECK-NEXT:    addi a8, a8, -4262; CHECK-NEXT:    l32i a3, a8, 0263; CHECK-NEXT:    l32r a8, .LCPI3_1264; CHECK-NEXT:    callx0 a8265; CHECK-NEXT:    l32i a12, a1, 4 # 4-byte Folded Reload266; CHECK-NEXT:    l32i a0, a1, 8 # 4-byte Folded Reload267; CHECK-NEXT:    addi a8, a1, 32268; CHECK-NEXT:    or a1, a8, a8269; CHECK-NEXT:    ret270entry:271  %list = alloca ptr, align 4272  call void @llvm.va_start(ptr %list)273 274  %va32 = va_arg ptr %list, i32275  %sum = add nsw i32 %va32, %a1276  call void @f_i32(i32 %sum)277 278  %va64 = va_arg ptr %list, i64279  call void @f_i64(i64 %va64)280 281  call void @llvm.va_end(ptr %list)282  ret void283}284 285define void @vararg_fixed_5(i32 %a1, i32 %a2, i32 %a3, i32 %a4, i32 %a5, ...) nounwind {286; CHECK-LABEL: vararg_fixed_5:287; CHECK:       # %bb.0: # %entry288; CHECK-NEXT:    addi a8, a1, -16289; CHECK-NEXT:    or a1, a8, a8290; CHECK-NEXT:    s32i a0, a1, 8 # 4-byte Folded Spill291; CHECK-NEXT:    s32i a12, a1, 4 # 4-byte Folded Spill292; CHECK-NEXT:    s32i a7, a1, 12293; CHECK-NEXT:    addi a9, a1, 12294; CHECK-NEXT:    s32i a9, a1, 4295; CHECK-NEXT:    addi a8, a1, 16296; CHECK-NEXT:    addi a8, a8, -32297; CHECK-NEXT:    s32i a8, a1, 0298; CHECK-NEXT:    movi a12, 24299; CHECK-NEXT:    blt a12, a12, .LBB4_2300; CHECK-NEXT:  # %bb.1: # %entry301; CHECK-NEXT:    or a8, a9, a9302; CHECK-NEXT:  .LBB4_2: # %entry303; CHECK-NEXT:    blt a12, a12, .LBB4_4304; CHECK-NEXT:  # %bb.3: # %entry305; CHECK-NEXT:    or a9, a12, a12306; CHECK-NEXT:    j .LBB4_5307; CHECK-NEXT:  .LBB4_4:308; CHECK-NEXT:    movi a9, 60309; CHECK-NEXT:  .LBB4_5: # %entry310; CHECK-NEXT:    s32i a9, a1, 8311; CHECK-NEXT:    add a8, a9, a8312; CHECK-NEXT:    addi a8, a8, -4313; CHECK-NEXT:    l32i a8, a8, 0314; CHECK-NEXT:    add a2, a8, a2315; CHECK-NEXT:    l32r a8, .LCPI4_0316; CHECK-NEXT:    callx0 a8317; CHECK-NEXT:    l32i a7, a1, 8318; CHECK-NEXT:    addi a10, a7, 4319; CHECK-NEXT:    l32i a9, a1, 4320; CHECK-NEXT:    l32i a8, a1, 0321; CHECK-NEXT:    or a11, a8, a8322; CHECK-NEXT:    blt a12, a10, .LBB4_7323; CHECK-NEXT:  # %bb.6: # %entry324; CHECK-NEXT:    or a11, a9, a9325; CHECK-NEXT:  .LBB4_7: # %entry326; CHECK-NEXT:    bge a12, a10, .LBB4_9327; CHECK-NEXT:  # %bb.8:328; CHECK-NEXT:    addi a10, a7, 40329; CHECK-NEXT:  .LBB4_9: # %entry330; CHECK-NEXT:    s32i a10, a1, 8331; CHECK-NEXT:    add a10, a10, a11332; CHECK-NEXT:    addi a7, a10, -4333; CHECK-NEXT:    l32i a11, a1, 8334; CHECK-NEXT:    addi a10, a11, 4335; CHECK-NEXT:    blt a12, a10, .LBB4_11336; CHECK-NEXT:  # %bb.10: # %entry337; CHECK-NEXT:    or a8, a9, a9338; CHECK-NEXT:  .LBB4_11: # %entry339; CHECK-NEXT:    l32i a2, a7, 0340; CHECK-NEXT:    bge a12, a10, .LBB4_13341; CHECK-NEXT:  # %bb.12:342; CHECK-NEXT:    addi a10, a11, 40343; CHECK-NEXT:  .LBB4_13: # %entry344; CHECK-NEXT:    s32i a10, a1, 8345; CHECK-NEXT:    add a8, a10, a8346; CHECK-NEXT:    addi a8, a8, -4347; CHECK-NEXT:    l32i a3, a8, 0348; CHECK-NEXT:    l32r a8, .LCPI4_1349; CHECK-NEXT:    callx0 a8350; CHECK-NEXT:    l32i a12, a1, 4 # 4-byte Folded Reload351; CHECK-NEXT:    l32i a0, a1, 8 # 4-byte Folded Reload352; CHECK-NEXT:    addi a8, a1, 16353; CHECK-NEXT:    or a1, a8, a8354; CHECK-NEXT:    ret355entry:356  %list = alloca ptr, align 4357  call void @llvm.va_start(ptr %list)358 359  %va32 = va_arg ptr %list, i32360  %sum = add nsw i32 %va32, %a1361  call void @f_i32(i32 %sum)362 363  %va64 = va_arg ptr %list, i64364  call void @f_i64(i64 %va64)365 366  call void @llvm.va_end(ptr %list)367  ret void368}369 370define void @vararg_fixed_6(i32 %a1, i32 %a2, i32 %a3, i32 %a4, i32 %a5, i32 %a6, ...) nounwind {371; CHECK-LABEL: vararg_fixed_6:372; CHECK:       # %bb.0: # %entry373; CHECK-NEXT:    addi a8, a1, -16374; CHECK-NEXT:    or a1, a8, a8375; CHECK-NEXT:    s32i a0, a1, 8 # 4-byte Folded Spill376; CHECK-NEXT:    s32i a12, a1, 4 # 4-byte Folded Spill377; CHECK-NEXT:    addi a10, a1, 0378; CHECK-NEXT:    s32i a10, a1, 4379; CHECK-NEXT:    addi a8, a1, 16380; CHECK-NEXT:    addi a8, a8, -32381; CHECK-NEXT:    s32i a8, a1, 0382; CHECK-NEXT:    movi a9, 36383; CHECK-NEXT:    movi a12, 24384; CHECK-NEXT:    blt a12, a9, .LBB5_2385; CHECK-NEXT:  # %bb.1: # %entry386; CHECK-NEXT:    or a8, a10, a10387; CHECK-NEXT:  .LBB5_2: # %entry388; CHECK-NEXT:    bge a12, a9, .LBB5_4389; CHECK-NEXT:  # %bb.3:390; CHECK-NEXT:    movi a9, 72391; CHECK-NEXT:  .LBB5_4: # %entry392; CHECK-NEXT:    s32i a9, a1, 8393; CHECK-NEXT:    add a8, a9, a8394; CHECK-NEXT:    addi a8, a8, -4395; CHECK-NEXT:    l32i a8, a8, 0396; CHECK-NEXT:    add a2, a8, a2397; CHECK-NEXT:    l32r a8, .LCPI5_0398; CHECK-NEXT:    callx0 a8399; CHECK-NEXT:    l32i a7, a1, 8400; CHECK-NEXT:    addi a10, a7, 4401; CHECK-NEXT:    l32i a9, a1, 4402; CHECK-NEXT:    l32i a8, a1, 0403; CHECK-NEXT:    or a11, a8, a8404; CHECK-NEXT:    blt a12, a10, .LBB5_6405; CHECK-NEXT:  # %bb.5: # %entry406; CHECK-NEXT:    or a11, a9, a9407; CHECK-NEXT:  .LBB5_6: # %entry408; CHECK-NEXT:    bge a12, a10, .LBB5_8409; CHECK-NEXT:  # %bb.7:410; CHECK-NEXT:    addi a10, a7, 40411; CHECK-NEXT:  .LBB5_8: # %entry412; CHECK-NEXT:    s32i a10, a1, 8413; CHECK-NEXT:    add a10, a10, a11414; CHECK-NEXT:    addi a7, a10, -4415; CHECK-NEXT:    l32i a11, a1, 8416; CHECK-NEXT:    addi a10, a11, 4417; CHECK-NEXT:    blt a12, a10, .LBB5_10418; CHECK-NEXT:  # %bb.9: # %entry419; CHECK-NEXT:    or a8, a9, a9420; CHECK-NEXT:  .LBB5_10: # %entry421; CHECK-NEXT:    l32i a2, a7, 0422; CHECK-NEXT:    bge a12, a10, .LBB5_12423; CHECK-NEXT:  # %bb.11:424; CHECK-NEXT:    addi a10, a11, 40425; CHECK-NEXT:  .LBB5_12: # %entry426; CHECK-NEXT:    s32i a10, a1, 8427; CHECK-NEXT:    add a8, a10, a8428; CHECK-NEXT:    addi a8, a8, -4429; CHECK-NEXT:    l32i a3, a8, 0430; CHECK-NEXT:    l32r a8, .LCPI5_1431; CHECK-NEXT:    callx0 a8432; CHECK-NEXT:    l32i a12, a1, 4 # 4-byte Folded Reload433; CHECK-NEXT:    l32i a0, a1, 8 # 4-byte Folded Reload434; CHECK-NEXT:    addi a8, a1, 16435; CHECK-NEXT:    or a1, a8, a8436; CHECK-NEXT:    ret437entry:438  %list = alloca ptr, align 4439  call void @llvm.va_start(ptr %list)440 441  %va32 = va_arg ptr %list, i32442  %sum = add nsw i32 %va32, %a1443  call void @f_i32(i32 %sum)444 445  %va64 = va_arg ptr %list, i64446  call void @f_i64(i64 %va64)447 448  call void @llvm.va_end(ptr %list)449  ret void450}451 452define void @vararg_fixed_7(i32 %a1, i32 %a2, i32 %a3, i32 %a4, i32 %a5, i32 %a6, i32 %a7, ...) nounwind {453; CHECK-LABEL: vararg_fixed_7:454; CHECK:       # %bb.0: # %entry455; CHECK-NEXT:    addi a8, a1, -16456; CHECK-NEXT:    or a1, a8, a8457; CHECK-NEXT:    s32i a0, a1, 8 # 4-byte Folded Spill458; CHECK-NEXT:    s32i a12, a1, 4 # 4-byte Folded Spill459; CHECK-NEXT:    addi a10, a1, 0460; CHECK-NEXT:    s32i a10, a1, 4461; CHECK-NEXT:    addi a8, a1, 20462; CHECK-NEXT:    addi a8, a8, -32463; CHECK-NEXT:    s32i a8, a1, 0464; CHECK-NEXT:    movi a9, 36465; CHECK-NEXT:    movi a12, 24466; CHECK-NEXT:    blt a12, a9, .LBB6_2467; CHECK-NEXT:  # %bb.1: # %entry468; CHECK-NEXT:    or a8, a10, a10469; CHECK-NEXT:  .LBB6_2: # %entry470; CHECK-NEXT:    bge a12, a9, .LBB6_4471; CHECK-NEXT:  # %bb.3:472; CHECK-NEXT:    movi a9, 72473; CHECK-NEXT:  .LBB6_4: # %entry474; CHECK-NEXT:    s32i a9, a1, 8475; CHECK-NEXT:    add a8, a9, a8476; CHECK-NEXT:    addi a8, a8, -4477; CHECK-NEXT:    l32i a8, a8, 0478; CHECK-NEXT:    add a2, a8, a2479; CHECK-NEXT:    l32r a8, .LCPI6_0480; CHECK-NEXT:    callx0 a8481; CHECK-NEXT:    l32i a7, a1, 8482; CHECK-NEXT:    addi a10, a7, 4483; CHECK-NEXT:    l32i a9, a1, 4484; CHECK-NEXT:    l32i a8, a1, 0485; CHECK-NEXT:    or a11, a8, a8486; CHECK-NEXT:    blt a12, a10, .LBB6_6487; CHECK-NEXT:  # %bb.5: # %entry488; CHECK-NEXT:    or a11, a9, a9489; CHECK-NEXT:  .LBB6_6: # %entry490; CHECK-NEXT:    bge a12, a10, .LBB6_8491; CHECK-NEXT:  # %bb.7:492; CHECK-NEXT:    addi a10, a7, 40493; CHECK-NEXT:  .LBB6_8: # %entry494; CHECK-NEXT:    s32i a10, a1, 8495; CHECK-NEXT:    add a10, a10, a11496; CHECK-NEXT:    addi a7, a10, -4497; CHECK-NEXT:    l32i a11, a1, 8498; CHECK-NEXT:    addi a10, a11, 4499; CHECK-NEXT:    blt a12, a10, .LBB6_10500; CHECK-NEXT:  # %bb.9: # %entry501; CHECK-NEXT:    or a8, a9, a9502; CHECK-NEXT:  .LBB6_10: # %entry503; CHECK-NEXT:    l32i a2, a7, 0504; CHECK-NEXT:    bge a12, a10, .LBB6_12505; CHECK-NEXT:  # %bb.11:506; CHECK-NEXT:    addi a10, a11, 40507; CHECK-NEXT:  .LBB6_12: # %entry508; CHECK-NEXT:    s32i a10, a1, 8509; CHECK-NEXT:    add a8, a10, a8510; CHECK-NEXT:    addi a8, a8, -4511; CHECK-NEXT:    l32i a3, a8, 0512; CHECK-NEXT:    l32r a8, .LCPI6_1513; CHECK-NEXT:    callx0 a8514; CHECK-NEXT:    l32i a12, a1, 4 # 4-byte Folded Reload515; CHECK-NEXT:    l32i a0, a1, 8 # 4-byte Folded Reload516; CHECK-NEXT:    addi a8, a1, 16517; CHECK-NEXT:    or a1, a8, a8518; CHECK-NEXT:    ret519entry:520  %list = alloca ptr, align 4521  call void @llvm.va_start(ptr %list)522 523  %va32 = va_arg ptr %list, i32524  %sum = add nsw i32 %va32, %a1525  call void @f_i32(i32 %sum)526 527  %va64 = va_arg ptr %list, i64528  call void @f_i64(i64 %va64)529 530  call void @llvm.va_end(ptr %list)531  ret void532}533