brintos

brintos / llvm-project-archived public Read only

0
0
Text · 163.8 KiB · 92c5d28 Raw
3912 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; RUN: llc -mtriple=riscv32 -mattr=+experimental-xqccmp -verify-machineinstrs < %s \3; RUN: | FileCheck %s -check-prefixes=RV32IXQCCMP4; RUN: llc -mtriple=riscv64 -mattr=+experimental-xqccmp -verify-machineinstrs < %s \5; RUN: | FileCheck %s -check-prefixes=RV64IXQCCMP6; RUN: llc -mtriple=riscv32 -mattr=+experimental-xqccmp -frame-pointer=all \7; RUN: -verify-machineinstrs < %s | FileCheck %s -check-prefixes=RV32IXQCCMP-FP8; RUN: llc -mtriple=riscv64 -mattr=+experimental-xqccmp -frame-pointer=all \9; RUN: -verify-machineinstrs < %s | FileCheck %s -check-prefixes=RV64IXQCCMP-FP10; RUN: llc -mtriple=riscv32 -mattr=+experimental-xqccmp,+save-restore \11; RUN: -verify-machineinstrs < %s | FileCheck %s -check-prefixes=RV32IXQCCMP-SR12; RUN: llc -mtriple=riscv64 -mattr=+experimental-xqccmp,+save-restore \13; RUN: -verify-machineinstrs < %s | FileCheck %s -check-prefixes=RV64IXQCCMP-SR14 15declare void @test(ptr)16declare void @callee_void(ptr)17declare i32 @callee(ptr)18 19define i32 @foo() {20; RV32IXQCCMP-LABEL: foo:21; RV32IXQCCMP:       # %bb.0:22; RV32IXQCCMP-NEXT:    qc.cm.push {ra}, -6423; RV32IXQCCMP-NEXT:    .cfi_def_cfa_offset 6424; RV32IXQCCMP-NEXT:    .cfi_offset ra, -425; RV32IXQCCMP-NEXT:    addi sp, sp, -46426; RV32IXQCCMP-NEXT:    .cfi_def_cfa_offset 52827; RV32IXQCCMP-NEXT:    mv a0, sp28; RV32IXQCCMP-NEXT:    call test29; RV32IXQCCMP-NEXT:    addi sp, sp, 46430; RV32IXQCCMP-NEXT:    .cfi_def_cfa_offset 6431; RV32IXQCCMP-NEXT:    qc.cm.popretz {ra}, 6432;33; RV64IXQCCMP-LABEL: foo:34; RV64IXQCCMP:       # %bb.0:35; RV64IXQCCMP-NEXT:    qc.cm.push {ra}, -6436; RV64IXQCCMP-NEXT:    .cfi_def_cfa_offset 6437; RV64IXQCCMP-NEXT:    .cfi_offset ra, -838; RV64IXQCCMP-NEXT:    addi sp, sp, -46439; RV64IXQCCMP-NEXT:    .cfi_def_cfa_offset 52840; RV64IXQCCMP-NEXT:    mv a0, sp41; RV64IXQCCMP-NEXT:    call test42; RV64IXQCCMP-NEXT:    addi sp, sp, 46443; RV64IXQCCMP-NEXT:    .cfi_def_cfa_offset 6444; RV64IXQCCMP-NEXT:    qc.cm.popretz {ra}, 6445;46; RV32IXQCCMP-FP-LABEL: foo:47; RV32IXQCCMP-FP:       # %bb.0:48; RV32IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0}, -6449; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 6450; RV32IXQCCMP-FP-NEXT:    .cfi_offset ra, -451; RV32IXQCCMP-FP-NEXT:    .cfi_offset s0, -852; RV32IXQCCMP-FP-NEXT:    addi sp, sp, -46453; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 52854; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 055; RV32IXQCCMP-FP-NEXT:    addi a0, s0, -52856; RV32IXQCCMP-FP-NEXT:    call test57; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 52858; RV32IXQCCMP-FP-NEXT:    addi sp, sp, 46459; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 6460; RV32IXQCCMP-FP-NEXT:    qc.cm.popretz {ra, s0}, 6461;62; RV64IXQCCMP-FP-LABEL: foo:63; RV64IXQCCMP-FP:       # %bb.0:64; RV64IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0}, -6465; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 6466; RV64IXQCCMP-FP-NEXT:    .cfi_offset ra, -867; RV64IXQCCMP-FP-NEXT:    .cfi_offset s0, -1668; RV64IXQCCMP-FP-NEXT:    addi sp, sp, -46469; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 52870; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 071; RV64IXQCCMP-FP-NEXT:    addi a0, s0, -52872; RV64IXQCCMP-FP-NEXT:    call test73; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 52874; RV64IXQCCMP-FP-NEXT:    addi sp, sp, 46475; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 6476; RV64IXQCCMP-FP-NEXT:    qc.cm.popretz {ra, s0}, 6477;78; RV32IXQCCMP-SR-LABEL: foo:79; RV32IXQCCMP-SR:       # %bb.0:80; RV32IXQCCMP-SR-NEXT:    qc.cm.push {ra}, -6481; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 6482; RV32IXQCCMP-SR-NEXT:    .cfi_offset ra, -483; RV32IXQCCMP-SR-NEXT:    addi sp, sp, -46484; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 52885; RV32IXQCCMP-SR-NEXT:    mv a0, sp86; RV32IXQCCMP-SR-NEXT:    call test87; RV32IXQCCMP-SR-NEXT:    addi sp, sp, 46488; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 6489; RV32IXQCCMP-SR-NEXT:    qc.cm.popretz {ra}, 6490;91; RV64IXQCCMP-SR-LABEL: foo:92; RV64IXQCCMP-SR:       # %bb.0:93; RV64IXQCCMP-SR-NEXT:    qc.cm.push {ra}, -6494; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 6495; RV64IXQCCMP-SR-NEXT:    .cfi_offset ra, -896; RV64IXQCCMP-SR-NEXT:    addi sp, sp, -46497; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 52898; RV64IXQCCMP-SR-NEXT:    mv a0, sp99; RV64IXQCCMP-SR-NEXT:    call test100; RV64IXQCCMP-SR-NEXT:    addi sp, sp, 464101; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 64102; RV64IXQCCMP-SR-NEXT:    qc.cm.popretz {ra}, 64103  %1 = alloca [512 x i8]104  %2 = getelementptr [512 x i8], ptr %1, i32 0, i32 0105  call void @test(ptr %2)106  ret i32 0107}108 109define i32 @pushpopret0(i32 signext %size) {110; RV32IXQCCMP-LABEL: pushpopret0:111; RV32IXQCCMP:       # %bb.0: # %entry112; RV32IXQCCMP-NEXT:    qc.cm.pushfp {ra, s0}, -16113; RV32IXQCCMP-NEXT:    .cfi_def_cfa_offset 16114; RV32IXQCCMP-NEXT:    .cfi_offset ra, -4115; RV32IXQCCMP-NEXT:    .cfi_offset s0, -8116; RV32IXQCCMP-NEXT:    .cfi_def_cfa s0, 0117; RV32IXQCCMP-NEXT:    addi a0, a0, 15118; RV32IXQCCMP-NEXT:    andi a0, a0, -16119; RV32IXQCCMP-NEXT:    sub a0, sp, a0120; RV32IXQCCMP-NEXT:    mv sp, a0121; RV32IXQCCMP-NEXT:    call callee_void122; RV32IXQCCMP-NEXT:    addi sp, s0, -16123; RV32IXQCCMP-NEXT:    .cfi_def_cfa sp, 16124; RV32IXQCCMP-NEXT:    qc.cm.popretz {ra, s0}, 16125;126; RV64IXQCCMP-LABEL: pushpopret0:127; RV64IXQCCMP:       # %bb.0: # %entry128; RV64IXQCCMP-NEXT:    qc.cm.pushfp {ra, s0}, -16129; RV64IXQCCMP-NEXT:    .cfi_def_cfa_offset 16130; RV64IXQCCMP-NEXT:    .cfi_offset ra, -8131; RV64IXQCCMP-NEXT:    .cfi_offset s0, -16132; RV64IXQCCMP-NEXT:    .cfi_def_cfa s0, 0133; RV64IXQCCMP-NEXT:    slli a0, a0, 32134; RV64IXQCCMP-NEXT:    srli a0, a0, 32135; RV64IXQCCMP-NEXT:    addi a0, a0, 15136; RV64IXQCCMP-NEXT:    andi a0, a0, -16137; RV64IXQCCMP-NEXT:    sub a0, sp, a0138; RV64IXQCCMP-NEXT:    mv sp, a0139; RV64IXQCCMP-NEXT:    call callee_void140; RV64IXQCCMP-NEXT:    addi sp, s0, -16141; RV64IXQCCMP-NEXT:    .cfi_def_cfa sp, 16142; RV64IXQCCMP-NEXT:    qc.cm.popretz {ra, s0}, 16143;144; RV32IXQCCMP-FP-LABEL: pushpopret0:145; RV32IXQCCMP-FP:       # %bb.0: # %entry146; RV32IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0}, -16147; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 16148; RV32IXQCCMP-FP-NEXT:    .cfi_offset ra, -4149; RV32IXQCCMP-FP-NEXT:    .cfi_offset s0, -8150; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 0151; RV32IXQCCMP-FP-NEXT:    addi a0, a0, 15152; RV32IXQCCMP-FP-NEXT:    andi a0, a0, -16153; RV32IXQCCMP-FP-NEXT:    sub a0, sp, a0154; RV32IXQCCMP-FP-NEXT:    mv sp, a0155; RV32IXQCCMP-FP-NEXT:    call callee_void156; RV32IXQCCMP-FP-NEXT:    addi sp, s0, -16157; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 16158; RV32IXQCCMP-FP-NEXT:    qc.cm.popretz {ra, s0}, 16159;160; RV64IXQCCMP-FP-LABEL: pushpopret0:161; RV64IXQCCMP-FP:       # %bb.0: # %entry162; RV64IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0}, -16163; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 16164; RV64IXQCCMP-FP-NEXT:    .cfi_offset ra, -8165; RV64IXQCCMP-FP-NEXT:    .cfi_offset s0, -16166; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 0167; RV64IXQCCMP-FP-NEXT:    slli a0, a0, 32168; RV64IXQCCMP-FP-NEXT:    srli a0, a0, 32169; RV64IXQCCMP-FP-NEXT:    addi a0, a0, 15170; RV64IXQCCMP-FP-NEXT:    andi a0, a0, -16171; RV64IXQCCMP-FP-NEXT:    sub a0, sp, a0172; RV64IXQCCMP-FP-NEXT:    mv sp, a0173; RV64IXQCCMP-FP-NEXT:    call callee_void174; RV64IXQCCMP-FP-NEXT:    addi sp, s0, -16175; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 16176; RV64IXQCCMP-FP-NEXT:    qc.cm.popretz {ra, s0}, 16177;178; RV32IXQCCMP-SR-LABEL: pushpopret0:179; RV32IXQCCMP-SR:       # %bb.0: # %entry180; RV32IXQCCMP-SR-NEXT:    qc.cm.pushfp {ra, s0}, -16181; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 16182; RV32IXQCCMP-SR-NEXT:    .cfi_offset ra, -4183; RV32IXQCCMP-SR-NEXT:    .cfi_offset s0, -8184; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa s0, 0185; RV32IXQCCMP-SR-NEXT:    addi a0, a0, 15186; RV32IXQCCMP-SR-NEXT:    andi a0, a0, -16187; RV32IXQCCMP-SR-NEXT:    sub a0, sp, a0188; RV32IXQCCMP-SR-NEXT:    mv sp, a0189; RV32IXQCCMP-SR-NEXT:    call callee_void190; RV32IXQCCMP-SR-NEXT:    addi sp, s0, -16191; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa sp, 16192; RV32IXQCCMP-SR-NEXT:    qc.cm.popretz {ra, s0}, 16193;194; RV64IXQCCMP-SR-LABEL: pushpopret0:195; RV64IXQCCMP-SR:       # %bb.0: # %entry196; RV64IXQCCMP-SR-NEXT:    qc.cm.pushfp {ra, s0}, -16197; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 16198; RV64IXQCCMP-SR-NEXT:    .cfi_offset ra, -8199; RV64IXQCCMP-SR-NEXT:    .cfi_offset s0, -16200; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa s0, 0201; RV64IXQCCMP-SR-NEXT:    slli a0, a0, 32202; RV64IXQCCMP-SR-NEXT:    srli a0, a0, 32203; RV64IXQCCMP-SR-NEXT:    addi a0, a0, 15204; RV64IXQCCMP-SR-NEXT:    andi a0, a0, -16205; RV64IXQCCMP-SR-NEXT:    sub a0, sp, a0206; RV64IXQCCMP-SR-NEXT:    mv sp, a0207; RV64IXQCCMP-SR-NEXT:    call callee_void208; RV64IXQCCMP-SR-NEXT:    addi sp, s0, -16209; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa sp, 16210; RV64IXQCCMP-SR-NEXT:    qc.cm.popretz {ra, s0}, 16211entry:212  %0 = alloca i8, i32 %size, align 16213  call void @callee_void(ptr nonnull %0)214  ret i32 0215}216 217define i32 @pushpopret1(i32 signext %size) {218; RV32IXQCCMP-LABEL: pushpopret1:219; RV32IXQCCMP:       # %bb.0: # %entry220; RV32IXQCCMP-NEXT:    qc.cm.pushfp {ra, s0}, -16221; RV32IXQCCMP-NEXT:    .cfi_def_cfa_offset 16222; RV32IXQCCMP-NEXT:    .cfi_offset ra, -4223; RV32IXQCCMP-NEXT:    .cfi_offset s0, -8224; RV32IXQCCMP-NEXT:    .cfi_def_cfa s0, 0225; RV32IXQCCMP-NEXT:    addi a0, a0, 15226; RV32IXQCCMP-NEXT:    andi a0, a0, -16227; RV32IXQCCMP-NEXT:    sub a0, sp, a0228; RV32IXQCCMP-NEXT:    mv sp, a0229; RV32IXQCCMP-NEXT:    call callee_void230; RV32IXQCCMP-NEXT:    li a0, 1231; RV32IXQCCMP-NEXT:    addi sp, s0, -16232; RV32IXQCCMP-NEXT:    .cfi_def_cfa sp, 16233; RV32IXQCCMP-NEXT:    qc.cm.popret {ra, s0}, 16234;235; RV64IXQCCMP-LABEL: pushpopret1:236; RV64IXQCCMP:       # %bb.0: # %entry237; RV64IXQCCMP-NEXT:    qc.cm.pushfp {ra, s0}, -16238; RV64IXQCCMP-NEXT:    .cfi_def_cfa_offset 16239; RV64IXQCCMP-NEXT:    .cfi_offset ra, -8240; RV64IXQCCMP-NEXT:    .cfi_offset s0, -16241; RV64IXQCCMP-NEXT:    .cfi_def_cfa s0, 0242; RV64IXQCCMP-NEXT:    slli a0, a0, 32243; RV64IXQCCMP-NEXT:    srli a0, a0, 32244; RV64IXQCCMP-NEXT:    addi a0, a0, 15245; RV64IXQCCMP-NEXT:    andi a0, a0, -16246; RV64IXQCCMP-NEXT:    sub a0, sp, a0247; RV64IXQCCMP-NEXT:    mv sp, a0248; RV64IXQCCMP-NEXT:    call callee_void249; RV64IXQCCMP-NEXT:    li a0, 1250; RV64IXQCCMP-NEXT:    addi sp, s0, -16251; RV64IXQCCMP-NEXT:    .cfi_def_cfa sp, 16252; RV64IXQCCMP-NEXT:    qc.cm.popret {ra, s0}, 16253;254; RV32IXQCCMP-FP-LABEL: pushpopret1:255; RV32IXQCCMP-FP:       # %bb.0: # %entry256; RV32IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0}, -16257; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 16258; RV32IXQCCMP-FP-NEXT:    .cfi_offset ra, -4259; RV32IXQCCMP-FP-NEXT:    .cfi_offset s0, -8260; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 0261; RV32IXQCCMP-FP-NEXT:    addi a0, a0, 15262; RV32IXQCCMP-FP-NEXT:    andi a0, a0, -16263; RV32IXQCCMP-FP-NEXT:    sub a0, sp, a0264; RV32IXQCCMP-FP-NEXT:    mv sp, a0265; RV32IXQCCMP-FP-NEXT:    call callee_void266; RV32IXQCCMP-FP-NEXT:    li a0, 1267; RV32IXQCCMP-FP-NEXT:    addi sp, s0, -16268; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 16269; RV32IXQCCMP-FP-NEXT:    qc.cm.popret {ra, s0}, 16270;271; RV64IXQCCMP-FP-LABEL: pushpopret1:272; RV64IXQCCMP-FP:       # %bb.0: # %entry273; RV64IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0}, -16274; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 16275; RV64IXQCCMP-FP-NEXT:    .cfi_offset ra, -8276; RV64IXQCCMP-FP-NEXT:    .cfi_offset s0, -16277; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 0278; RV64IXQCCMP-FP-NEXT:    slli a0, a0, 32279; RV64IXQCCMP-FP-NEXT:    srli a0, a0, 32280; RV64IXQCCMP-FP-NEXT:    addi a0, a0, 15281; RV64IXQCCMP-FP-NEXT:    andi a0, a0, -16282; RV64IXQCCMP-FP-NEXT:    sub a0, sp, a0283; RV64IXQCCMP-FP-NEXT:    mv sp, a0284; RV64IXQCCMP-FP-NEXT:    call callee_void285; RV64IXQCCMP-FP-NEXT:    li a0, 1286; RV64IXQCCMP-FP-NEXT:    addi sp, s0, -16287; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 16288; RV64IXQCCMP-FP-NEXT:    qc.cm.popret {ra, s0}, 16289;290; RV32IXQCCMP-SR-LABEL: pushpopret1:291; RV32IXQCCMP-SR:       # %bb.0: # %entry292; RV32IXQCCMP-SR-NEXT:    qc.cm.pushfp {ra, s0}, -16293; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 16294; RV32IXQCCMP-SR-NEXT:    .cfi_offset ra, -4295; RV32IXQCCMP-SR-NEXT:    .cfi_offset s0, -8296; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa s0, 0297; RV32IXQCCMP-SR-NEXT:    addi a0, a0, 15298; RV32IXQCCMP-SR-NEXT:    andi a0, a0, -16299; RV32IXQCCMP-SR-NEXT:    sub a0, sp, a0300; RV32IXQCCMP-SR-NEXT:    mv sp, a0301; RV32IXQCCMP-SR-NEXT:    call callee_void302; RV32IXQCCMP-SR-NEXT:    li a0, 1303; RV32IXQCCMP-SR-NEXT:    addi sp, s0, -16304; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa sp, 16305; RV32IXQCCMP-SR-NEXT:    qc.cm.popret {ra, s0}, 16306;307; RV64IXQCCMP-SR-LABEL: pushpopret1:308; RV64IXQCCMP-SR:       # %bb.0: # %entry309; RV64IXQCCMP-SR-NEXT:    qc.cm.pushfp {ra, s0}, -16310; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 16311; RV64IXQCCMP-SR-NEXT:    .cfi_offset ra, -8312; RV64IXQCCMP-SR-NEXT:    .cfi_offset s0, -16313; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa s0, 0314; RV64IXQCCMP-SR-NEXT:    slli a0, a0, 32315; RV64IXQCCMP-SR-NEXT:    srli a0, a0, 32316; RV64IXQCCMP-SR-NEXT:    addi a0, a0, 15317; RV64IXQCCMP-SR-NEXT:    andi a0, a0, -16318; RV64IXQCCMP-SR-NEXT:    sub a0, sp, a0319; RV64IXQCCMP-SR-NEXT:    mv sp, a0320; RV64IXQCCMP-SR-NEXT:    call callee_void321; RV64IXQCCMP-SR-NEXT:    li a0, 1322; RV64IXQCCMP-SR-NEXT:    addi sp, s0, -16323; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa sp, 16324; RV64IXQCCMP-SR-NEXT:    qc.cm.popret {ra, s0}, 16325entry:326  %0 = alloca i8, i32 %size, align 16327  call void @callee_void(ptr nonnull %0)328  ret i32 1329}330 331define i32 @pushpopretneg1(i32 signext %size) {332; RV32IXQCCMP-LABEL: pushpopretneg1:333; RV32IXQCCMP:       # %bb.0: # %entry334; RV32IXQCCMP-NEXT:    qc.cm.pushfp {ra, s0}, -16335; RV32IXQCCMP-NEXT:    .cfi_def_cfa_offset 16336; RV32IXQCCMP-NEXT:    .cfi_offset ra, -4337; RV32IXQCCMP-NEXT:    .cfi_offset s0, -8338; RV32IXQCCMP-NEXT:    .cfi_def_cfa s0, 0339; RV32IXQCCMP-NEXT:    addi a0, a0, 15340; RV32IXQCCMP-NEXT:    andi a0, a0, -16341; RV32IXQCCMP-NEXT:    sub a0, sp, a0342; RV32IXQCCMP-NEXT:    mv sp, a0343; RV32IXQCCMP-NEXT:    call callee_void344; RV32IXQCCMP-NEXT:    li a0, -1345; RV32IXQCCMP-NEXT:    addi sp, s0, -16346; RV32IXQCCMP-NEXT:    .cfi_def_cfa sp, 16347; RV32IXQCCMP-NEXT:    qc.cm.popret {ra, s0}, 16348;349; RV64IXQCCMP-LABEL: pushpopretneg1:350; RV64IXQCCMP:       # %bb.0: # %entry351; RV64IXQCCMP-NEXT:    qc.cm.pushfp {ra, s0}, -16352; RV64IXQCCMP-NEXT:    .cfi_def_cfa_offset 16353; RV64IXQCCMP-NEXT:    .cfi_offset ra, -8354; RV64IXQCCMP-NEXT:    .cfi_offset s0, -16355; RV64IXQCCMP-NEXT:    .cfi_def_cfa s0, 0356; RV64IXQCCMP-NEXT:    slli a0, a0, 32357; RV64IXQCCMP-NEXT:    srli a0, a0, 32358; RV64IXQCCMP-NEXT:    addi a0, a0, 15359; RV64IXQCCMP-NEXT:    andi a0, a0, -16360; RV64IXQCCMP-NEXT:    sub a0, sp, a0361; RV64IXQCCMP-NEXT:    mv sp, a0362; RV64IXQCCMP-NEXT:    call callee_void363; RV64IXQCCMP-NEXT:    li a0, -1364; RV64IXQCCMP-NEXT:    addi sp, s0, -16365; RV64IXQCCMP-NEXT:    .cfi_def_cfa sp, 16366; RV64IXQCCMP-NEXT:    qc.cm.popret {ra, s0}, 16367;368; RV32IXQCCMP-FP-LABEL: pushpopretneg1:369; RV32IXQCCMP-FP:       # %bb.0: # %entry370; RV32IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0}, -16371; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 16372; RV32IXQCCMP-FP-NEXT:    .cfi_offset ra, -4373; RV32IXQCCMP-FP-NEXT:    .cfi_offset s0, -8374; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 0375; RV32IXQCCMP-FP-NEXT:    addi a0, a0, 15376; RV32IXQCCMP-FP-NEXT:    andi a0, a0, -16377; RV32IXQCCMP-FP-NEXT:    sub a0, sp, a0378; RV32IXQCCMP-FP-NEXT:    mv sp, a0379; RV32IXQCCMP-FP-NEXT:    call callee_void380; RV32IXQCCMP-FP-NEXT:    li a0, -1381; RV32IXQCCMP-FP-NEXT:    addi sp, s0, -16382; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 16383; RV32IXQCCMP-FP-NEXT:    qc.cm.popret {ra, s0}, 16384;385; RV64IXQCCMP-FP-LABEL: pushpopretneg1:386; RV64IXQCCMP-FP:       # %bb.0: # %entry387; RV64IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0}, -16388; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 16389; RV64IXQCCMP-FP-NEXT:    .cfi_offset ra, -8390; RV64IXQCCMP-FP-NEXT:    .cfi_offset s0, -16391; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 0392; RV64IXQCCMP-FP-NEXT:    slli a0, a0, 32393; RV64IXQCCMP-FP-NEXT:    srli a0, a0, 32394; RV64IXQCCMP-FP-NEXT:    addi a0, a0, 15395; RV64IXQCCMP-FP-NEXT:    andi a0, a0, -16396; RV64IXQCCMP-FP-NEXT:    sub a0, sp, a0397; RV64IXQCCMP-FP-NEXT:    mv sp, a0398; RV64IXQCCMP-FP-NEXT:    call callee_void399; RV64IXQCCMP-FP-NEXT:    li a0, -1400; RV64IXQCCMP-FP-NEXT:    addi sp, s0, -16401; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 16402; RV64IXQCCMP-FP-NEXT:    qc.cm.popret {ra, s0}, 16403;404; RV32IXQCCMP-SR-LABEL: pushpopretneg1:405; RV32IXQCCMP-SR:       # %bb.0: # %entry406; RV32IXQCCMP-SR-NEXT:    qc.cm.pushfp {ra, s0}, -16407; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 16408; RV32IXQCCMP-SR-NEXT:    .cfi_offset ra, -4409; RV32IXQCCMP-SR-NEXT:    .cfi_offset s0, -8410; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa s0, 0411; RV32IXQCCMP-SR-NEXT:    addi a0, a0, 15412; RV32IXQCCMP-SR-NEXT:    andi a0, a0, -16413; RV32IXQCCMP-SR-NEXT:    sub a0, sp, a0414; RV32IXQCCMP-SR-NEXT:    mv sp, a0415; RV32IXQCCMP-SR-NEXT:    call callee_void416; RV32IXQCCMP-SR-NEXT:    li a0, -1417; RV32IXQCCMP-SR-NEXT:    addi sp, s0, -16418; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa sp, 16419; RV32IXQCCMP-SR-NEXT:    qc.cm.popret {ra, s0}, 16420;421; RV64IXQCCMP-SR-LABEL: pushpopretneg1:422; RV64IXQCCMP-SR:       # %bb.0: # %entry423; RV64IXQCCMP-SR-NEXT:    qc.cm.pushfp {ra, s0}, -16424; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 16425; RV64IXQCCMP-SR-NEXT:    .cfi_offset ra, -8426; RV64IXQCCMP-SR-NEXT:    .cfi_offset s0, -16427; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa s0, 0428; RV64IXQCCMP-SR-NEXT:    slli a0, a0, 32429; RV64IXQCCMP-SR-NEXT:    srli a0, a0, 32430; RV64IXQCCMP-SR-NEXT:    addi a0, a0, 15431; RV64IXQCCMP-SR-NEXT:    andi a0, a0, -16432; RV64IXQCCMP-SR-NEXT:    sub a0, sp, a0433; RV64IXQCCMP-SR-NEXT:    mv sp, a0434; RV64IXQCCMP-SR-NEXT:    call callee_void435; RV64IXQCCMP-SR-NEXT:    li a0, -1436; RV64IXQCCMP-SR-NEXT:    addi sp, s0, -16437; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa sp, 16438; RV64IXQCCMP-SR-NEXT:    qc.cm.popret {ra, s0}, 16439entry:440  %0 = alloca i8, i32 %size, align 16441  call void @callee_void(ptr nonnull %0)442  ret i32 -1443}444 445define i32 @pushpopret2(i32 signext %size) {446; RV32IXQCCMP-LABEL: pushpopret2:447; RV32IXQCCMP:       # %bb.0: # %entry448; RV32IXQCCMP-NEXT:    qc.cm.pushfp {ra, s0}, -16449; RV32IXQCCMP-NEXT:    .cfi_def_cfa_offset 16450; RV32IXQCCMP-NEXT:    .cfi_offset ra, -4451; RV32IXQCCMP-NEXT:    .cfi_offset s0, -8452; RV32IXQCCMP-NEXT:    .cfi_def_cfa s0, 0453; RV32IXQCCMP-NEXT:    addi a0, a0, 15454; RV32IXQCCMP-NEXT:    andi a0, a0, -16455; RV32IXQCCMP-NEXT:    sub a0, sp, a0456; RV32IXQCCMP-NEXT:    mv sp, a0457; RV32IXQCCMP-NEXT:    call callee_void458; RV32IXQCCMP-NEXT:    li a0, 2459; RV32IXQCCMP-NEXT:    addi sp, s0, -16460; RV32IXQCCMP-NEXT:    .cfi_def_cfa sp, 16461; RV32IXQCCMP-NEXT:    qc.cm.popret {ra, s0}, 16462;463; RV64IXQCCMP-LABEL: pushpopret2:464; RV64IXQCCMP:       # %bb.0: # %entry465; RV64IXQCCMP-NEXT:    qc.cm.pushfp {ra, s0}, -16466; RV64IXQCCMP-NEXT:    .cfi_def_cfa_offset 16467; RV64IXQCCMP-NEXT:    .cfi_offset ra, -8468; RV64IXQCCMP-NEXT:    .cfi_offset s0, -16469; RV64IXQCCMP-NEXT:    .cfi_def_cfa s0, 0470; RV64IXQCCMP-NEXT:    slli a0, a0, 32471; RV64IXQCCMP-NEXT:    srli a0, a0, 32472; RV64IXQCCMP-NEXT:    addi a0, a0, 15473; RV64IXQCCMP-NEXT:    andi a0, a0, -16474; RV64IXQCCMP-NEXT:    sub a0, sp, a0475; RV64IXQCCMP-NEXT:    mv sp, a0476; RV64IXQCCMP-NEXT:    call callee_void477; RV64IXQCCMP-NEXT:    li a0, 2478; RV64IXQCCMP-NEXT:    addi sp, s0, -16479; RV64IXQCCMP-NEXT:    .cfi_def_cfa sp, 16480; RV64IXQCCMP-NEXT:    qc.cm.popret {ra, s0}, 16481;482; RV32IXQCCMP-FP-LABEL: pushpopret2:483; RV32IXQCCMP-FP:       # %bb.0: # %entry484; RV32IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0}, -16485; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 16486; RV32IXQCCMP-FP-NEXT:    .cfi_offset ra, -4487; RV32IXQCCMP-FP-NEXT:    .cfi_offset s0, -8488; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 0489; RV32IXQCCMP-FP-NEXT:    addi a0, a0, 15490; RV32IXQCCMP-FP-NEXT:    andi a0, a0, -16491; RV32IXQCCMP-FP-NEXT:    sub a0, sp, a0492; RV32IXQCCMP-FP-NEXT:    mv sp, a0493; RV32IXQCCMP-FP-NEXT:    call callee_void494; RV32IXQCCMP-FP-NEXT:    li a0, 2495; RV32IXQCCMP-FP-NEXT:    addi sp, s0, -16496; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 16497; RV32IXQCCMP-FP-NEXT:    qc.cm.popret {ra, s0}, 16498;499; RV64IXQCCMP-FP-LABEL: pushpopret2:500; RV64IXQCCMP-FP:       # %bb.0: # %entry501; RV64IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0}, -16502; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 16503; RV64IXQCCMP-FP-NEXT:    .cfi_offset ra, -8504; RV64IXQCCMP-FP-NEXT:    .cfi_offset s0, -16505; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 0506; RV64IXQCCMP-FP-NEXT:    slli a0, a0, 32507; RV64IXQCCMP-FP-NEXT:    srli a0, a0, 32508; RV64IXQCCMP-FP-NEXT:    addi a0, a0, 15509; RV64IXQCCMP-FP-NEXT:    andi a0, a0, -16510; RV64IXQCCMP-FP-NEXT:    sub a0, sp, a0511; RV64IXQCCMP-FP-NEXT:    mv sp, a0512; RV64IXQCCMP-FP-NEXT:    call callee_void513; RV64IXQCCMP-FP-NEXT:    li a0, 2514; RV64IXQCCMP-FP-NEXT:    addi sp, s0, -16515; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 16516; RV64IXQCCMP-FP-NEXT:    qc.cm.popret {ra, s0}, 16517;518; RV32IXQCCMP-SR-LABEL: pushpopret2:519; RV32IXQCCMP-SR:       # %bb.0: # %entry520; RV32IXQCCMP-SR-NEXT:    qc.cm.pushfp {ra, s0}, -16521; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 16522; RV32IXQCCMP-SR-NEXT:    .cfi_offset ra, -4523; RV32IXQCCMP-SR-NEXT:    .cfi_offset s0, -8524; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa s0, 0525; RV32IXQCCMP-SR-NEXT:    addi a0, a0, 15526; RV32IXQCCMP-SR-NEXT:    andi a0, a0, -16527; RV32IXQCCMP-SR-NEXT:    sub a0, sp, a0528; RV32IXQCCMP-SR-NEXT:    mv sp, a0529; RV32IXQCCMP-SR-NEXT:    call callee_void530; RV32IXQCCMP-SR-NEXT:    li a0, 2531; RV32IXQCCMP-SR-NEXT:    addi sp, s0, -16532; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa sp, 16533; RV32IXQCCMP-SR-NEXT:    qc.cm.popret {ra, s0}, 16534;535; RV64IXQCCMP-SR-LABEL: pushpopret2:536; RV64IXQCCMP-SR:       # %bb.0: # %entry537; RV64IXQCCMP-SR-NEXT:    qc.cm.pushfp {ra, s0}, -16538; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 16539; RV64IXQCCMP-SR-NEXT:    .cfi_offset ra, -8540; RV64IXQCCMP-SR-NEXT:    .cfi_offset s0, -16541; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa s0, 0542; RV64IXQCCMP-SR-NEXT:    slli a0, a0, 32543; RV64IXQCCMP-SR-NEXT:    srli a0, a0, 32544; RV64IXQCCMP-SR-NEXT:    addi a0, a0, 15545; RV64IXQCCMP-SR-NEXT:    andi a0, a0, -16546; RV64IXQCCMP-SR-NEXT:    sub a0, sp, a0547; RV64IXQCCMP-SR-NEXT:    mv sp, a0548; RV64IXQCCMP-SR-NEXT:    call callee_void549; RV64IXQCCMP-SR-NEXT:    li a0, 2550; RV64IXQCCMP-SR-NEXT:    addi sp, s0, -16551; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa sp, 16552; RV64IXQCCMP-SR-NEXT:    qc.cm.popret {ra, s0}, 16553entry:554  %0 = alloca i8, i32 %size, align 16555  call void @callee_void(ptr nonnull %0)556  ret i32 2557}558 559define dso_local i32 @tailcall(i32 signext %size) local_unnamed_addr #0 {560; RV32IXQCCMP-LABEL: tailcall:561; RV32IXQCCMP:       # %bb.0: # %entry562; RV32IXQCCMP-NEXT:    qc.cm.pushfp {ra, s0}, -16563; RV32IXQCCMP-NEXT:    .cfi_def_cfa_offset 16564; RV32IXQCCMP-NEXT:    .cfi_offset ra, -4565; RV32IXQCCMP-NEXT:    .cfi_offset s0, -8566; RV32IXQCCMP-NEXT:    .cfi_def_cfa s0, 0567; RV32IXQCCMP-NEXT:    addi a0, a0, 15568; RV32IXQCCMP-NEXT:    andi a0, a0, -16569; RV32IXQCCMP-NEXT:    sub a0, sp, a0570; RV32IXQCCMP-NEXT:    mv sp, a0571; RV32IXQCCMP-NEXT:    addi sp, s0, -16572; RV32IXQCCMP-NEXT:    .cfi_def_cfa sp, 16573; RV32IXQCCMP-NEXT:    qc.cm.pop {ra, s0}, 16574; RV32IXQCCMP-NEXT:    .cfi_restore ra575; RV32IXQCCMP-NEXT:    .cfi_restore s0576; RV32IXQCCMP-NEXT:    .cfi_def_cfa_offset 0577; RV32IXQCCMP-NEXT:    tail callee578;579; RV64IXQCCMP-LABEL: tailcall:580; RV64IXQCCMP:       # %bb.0: # %entry581; RV64IXQCCMP-NEXT:    qc.cm.pushfp {ra, s0}, -16582; RV64IXQCCMP-NEXT:    .cfi_def_cfa_offset 16583; RV64IXQCCMP-NEXT:    .cfi_offset ra, -8584; RV64IXQCCMP-NEXT:    .cfi_offset s0, -16585; RV64IXQCCMP-NEXT:    .cfi_def_cfa s0, 0586; RV64IXQCCMP-NEXT:    slli a0, a0, 32587; RV64IXQCCMP-NEXT:    srli a0, a0, 32588; RV64IXQCCMP-NEXT:    addi a0, a0, 15589; RV64IXQCCMP-NEXT:    andi a0, a0, -16590; RV64IXQCCMP-NEXT:    sub a0, sp, a0591; RV64IXQCCMP-NEXT:    mv sp, a0592; RV64IXQCCMP-NEXT:    addi sp, s0, -16593; RV64IXQCCMP-NEXT:    .cfi_def_cfa sp, 16594; RV64IXQCCMP-NEXT:    qc.cm.pop {ra, s0}, 16595; RV64IXQCCMP-NEXT:    .cfi_restore ra596; RV64IXQCCMP-NEXT:    .cfi_restore s0597; RV64IXQCCMP-NEXT:    .cfi_def_cfa_offset 0598; RV64IXQCCMP-NEXT:    tail callee599;600; RV32IXQCCMP-FP-LABEL: tailcall:601; RV32IXQCCMP-FP:       # %bb.0: # %entry602; RV32IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0}, -16603; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 16604; RV32IXQCCMP-FP-NEXT:    .cfi_offset ra, -4605; RV32IXQCCMP-FP-NEXT:    .cfi_offset s0, -8606; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 0607; RV32IXQCCMP-FP-NEXT:    addi a0, a0, 15608; RV32IXQCCMP-FP-NEXT:    andi a0, a0, -16609; RV32IXQCCMP-FP-NEXT:    sub a0, sp, a0610; RV32IXQCCMP-FP-NEXT:    mv sp, a0611; RV32IXQCCMP-FP-NEXT:    addi sp, s0, -16612; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 16613; RV32IXQCCMP-FP-NEXT:    qc.cm.pop {ra, s0}, 16614; RV32IXQCCMP-FP-NEXT:    .cfi_restore ra615; RV32IXQCCMP-FP-NEXT:    .cfi_restore s0616; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 0617; RV32IXQCCMP-FP-NEXT:    tail callee618;619; RV64IXQCCMP-FP-LABEL: tailcall:620; RV64IXQCCMP-FP:       # %bb.0: # %entry621; RV64IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0}, -16622; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 16623; RV64IXQCCMP-FP-NEXT:    .cfi_offset ra, -8624; RV64IXQCCMP-FP-NEXT:    .cfi_offset s0, -16625; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 0626; RV64IXQCCMP-FP-NEXT:    slli a0, a0, 32627; RV64IXQCCMP-FP-NEXT:    srli a0, a0, 32628; RV64IXQCCMP-FP-NEXT:    addi a0, a0, 15629; RV64IXQCCMP-FP-NEXT:    andi a0, a0, -16630; RV64IXQCCMP-FP-NEXT:    sub a0, sp, a0631; RV64IXQCCMP-FP-NEXT:    mv sp, a0632; RV64IXQCCMP-FP-NEXT:    addi sp, s0, -16633; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 16634; RV64IXQCCMP-FP-NEXT:    qc.cm.pop {ra, s0}, 16635; RV64IXQCCMP-FP-NEXT:    .cfi_restore ra636; RV64IXQCCMP-FP-NEXT:    .cfi_restore s0637; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 0638; RV64IXQCCMP-FP-NEXT:    tail callee639;640; RV32IXQCCMP-SR-LABEL: tailcall:641; RV32IXQCCMP-SR:       # %bb.0: # %entry642; RV32IXQCCMP-SR-NEXT:    qc.cm.pushfp {ra, s0}, -16643; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 16644; RV32IXQCCMP-SR-NEXT:    .cfi_offset ra, -4645; RV32IXQCCMP-SR-NEXT:    .cfi_offset s0, -8646; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa s0, 0647; RV32IXQCCMP-SR-NEXT:    addi a0, a0, 15648; RV32IXQCCMP-SR-NEXT:    andi a0, a0, -16649; RV32IXQCCMP-SR-NEXT:    sub a0, sp, a0650; RV32IXQCCMP-SR-NEXT:    mv sp, a0651; RV32IXQCCMP-SR-NEXT:    addi sp, s0, -16652; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa sp, 16653; RV32IXQCCMP-SR-NEXT:    qc.cm.pop {ra, s0}, 16654; RV32IXQCCMP-SR-NEXT:    .cfi_restore ra655; RV32IXQCCMP-SR-NEXT:    .cfi_restore s0656; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 0657; RV32IXQCCMP-SR-NEXT:    tail callee658;659; RV64IXQCCMP-SR-LABEL: tailcall:660; RV64IXQCCMP-SR:       # %bb.0: # %entry661; RV64IXQCCMP-SR-NEXT:    qc.cm.pushfp {ra, s0}, -16662; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 16663; RV64IXQCCMP-SR-NEXT:    .cfi_offset ra, -8664; RV64IXQCCMP-SR-NEXT:    .cfi_offset s0, -16665; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa s0, 0666; RV64IXQCCMP-SR-NEXT:    slli a0, a0, 32667; RV64IXQCCMP-SR-NEXT:    srli a0, a0, 32668; RV64IXQCCMP-SR-NEXT:    addi a0, a0, 15669; RV64IXQCCMP-SR-NEXT:    andi a0, a0, -16670; RV64IXQCCMP-SR-NEXT:    sub a0, sp, a0671; RV64IXQCCMP-SR-NEXT:    mv sp, a0672; RV64IXQCCMP-SR-NEXT:    addi sp, s0, -16673; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa sp, 16674; RV64IXQCCMP-SR-NEXT:    qc.cm.pop {ra, s0}, 16675; RV64IXQCCMP-SR-NEXT:    .cfi_restore ra676; RV64IXQCCMP-SR-NEXT:    .cfi_restore s0677; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 0678; RV64IXQCCMP-SR-NEXT:    tail callee679entry:680  %0 = alloca i8, i32 %size, align 16681  %1 = tail call i32 @callee(ptr nonnull %0)682  ret i32 %1683}684 685@var = global [5 x i32] zeroinitializer686define i32 @nocompress(i32 signext %size) {687; RV32IXQCCMP-LABEL: nocompress:688; RV32IXQCCMP:       # %bb.0: # %entry689; RV32IXQCCMP-NEXT:    qc.cm.pushfp {ra, s0-s7}, -48690; RV32IXQCCMP-NEXT:    .cfi_def_cfa_offset 48691; RV32IXQCCMP-NEXT:    .cfi_offset ra, -4692; RV32IXQCCMP-NEXT:    .cfi_offset s0, -8693; RV32IXQCCMP-NEXT:    .cfi_offset s1, -12694; RV32IXQCCMP-NEXT:    .cfi_offset s2, -16695; RV32IXQCCMP-NEXT:    .cfi_offset s3, -20696; RV32IXQCCMP-NEXT:    .cfi_offset s4, -24697; RV32IXQCCMP-NEXT:    .cfi_offset s5, -28698; RV32IXQCCMP-NEXT:    .cfi_offset s6, -32699; RV32IXQCCMP-NEXT:    .cfi_offset s7, -36700; RV32IXQCCMP-NEXT:    .cfi_def_cfa s0, 0701; RV32IXQCCMP-NEXT:    addi a0, a0, 15702; RV32IXQCCMP-NEXT:    andi a0, a0, -16703; RV32IXQCCMP-NEXT:    sub s2, sp, a0704; RV32IXQCCMP-NEXT:    mv sp, s2705; RV32IXQCCMP-NEXT:    lui s1, %hi(var)706; RV32IXQCCMP-NEXT:    addi s1, s1, %lo(var)707; RV32IXQCCMP-NEXT:    lw s3, 0(s1)708; RV32IXQCCMP-NEXT:    lw s4, 4(s1)709; RV32IXQCCMP-NEXT:    lw s5, 8(s1)710; RV32IXQCCMP-NEXT:    lw s6, 12(s1)711; RV32IXQCCMP-NEXT:    lw s7, 16(s1)712; RV32IXQCCMP-NEXT:    mv a0, s2713; RV32IXQCCMP-NEXT:    call callee_void714; RV32IXQCCMP-NEXT:    sw s7, 16(s1)715; RV32IXQCCMP-NEXT:    sw s6, 12(s1)716; RV32IXQCCMP-NEXT:    sw s5, 8(s1)717; RV32IXQCCMP-NEXT:    sw s4, 4(s1)718; RV32IXQCCMP-NEXT:    sw s3, 0(s1)719; RV32IXQCCMP-NEXT:    mv a0, s2720; RV32IXQCCMP-NEXT:    addi sp, s0, -48721; RV32IXQCCMP-NEXT:    .cfi_def_cfa sp, 48722; RV32IXQCCMP-NEXT:    qc.cm.pop {ra, s0-s7}, 48723; RV32IXQCCMP-NEXT:    .cfi_restore ra724; RV32IXQCCMP-NEXT:    .cfi_restore s0725; RV32IXQCCMP-NEXT:    .cfi_restore s1726; RV32IXQCCMP-NEXT:    .cfi_restore s2727; RV32IXQCCMP-NEXT:    .cfi_restore s3728; RV32IXQCCMP-NEXT:    .cfi_restore s4729; RV32IXQCCMP-NEXT:    .cfi_restore s5730; RV32IXQCCMP-NEXT:    .cfi_restore s6731; RV32IXQCCMP-NEXT:    .cfi_restore s7732; RV32IXQCCMP-NEXT:    .cfi_def_cfa_offset 0733; RV32IXQCCMP-NEXT:    tail callee734;735; RV64IXQCCMP-LABEL: nocompress:736; RV64IXQCCMP:       # %bb.0: # %entry737; RV64IXQCCMP-NEXT:    qc.cm.pushfp {ra, s0-s7}, -80738; RV64IXQCCMP-NEXT:    .cfi_def_cfa_offset 80739; RV64IXQCCMP-NEXT:    .cfi_offset ra, -8740; RV64IXQCCMP-NEXT:    .cfi_offset s0, -16741; RV64IXQCCMP-NEXT:    .cfi_offset s1, -24742; RV64IXQCCMP-NEXT:    .cfi_offset s2, -32743; RV64IXQCCMP-NEXT:    .cfi_offset s3, -40744; RV64IXQCCMP-NEXT:    .cfi_offset s4, -48745; RV64IXQCCMP-NEXT:    .cfi_offset s5, -56746; RV64IXQCCMP-NEXT:    .cfi_offset s6, -64747; RV64IXQCCMP-NEXT:    .cfi_offset s7, -72748; RV64IXQCCMP-NEXT:    .cfi_def_cfa s0, 0749; RV64IXQCCMP-NEXT:    slli a0, a0, 32750; RV64IXQCCMP-NEXT:    srli a0, a0, 32751; RV64IXQCCMP-NEXT:    addi a0, a0, 15752; RV64IXQCCMP-NEXT:    andi a0, a0, -16753; RV64IXQCCMP-NEXT:    sub s2, sp, a0754; RV64IXQCCMP-NEXT:    mv sp, s2755; RV64IXQCCMP-NEXT:    lui s1, %hi(var)756; RV64IXQCCMP-NEXT:    addi s1, s1, %lo(var)757; RV64IXQCCMP-NEXT:    lw s3, 0(s1)758; RV64IXQCCMP-NEXT:    lw s4, 4(s1)759; RV64IXQCCMP-NEXT:    lw s5, 8(s1)760; RV64IXQCCMP-NEXT:    lw s6, 12(s1)761; RV64IXQCCMP-NEXT:    lw s7, 16(s1)762; RV64IXQCCMP-NEXT:    mv a0, s2763; RV64IXQCCMP-NEXT:    call callee_void764; RV64IXQCCMP-NEXT:    sw s7, 16(s1)765; RV64IXQCCMP-NEXT:    sw s6, 12(s1)766; RV64IXQCCMP-NEXT:    sw s5, 8(s1)767; RV64IXQCCMP-NEXT:    sw s4, 4(s1)768; RV64IXQCCMP-NEXT:    sw s3, 0(s1)769; RV64IXQCCMP-NEXT:    mv a0, s2770; RV64IXQCCMP-NEXT:    addi sp, s0, -80771; RV64IXQCCMP-NEXT:    .cfi_def_cfa sp, 80772; RV64IXQCCMP-NEXT:    qc.cm.pop {ra, s0-s7}, 80773; RV64IXQCCMP-NEXT:    .cfi_restore ra774; RV64IXQCCMP-NEXT:    .cfi_restore s0775; RV64IXQCCMP-NEXT:    .cfi_restore s1776; RV64IXQCCMP-NEXT:    .cfi_restore s2777; RV64IXQCCMP-NEXT:    .cfi_restore s3778; RV64IXQCCMP-NEXT:    .cfi_restore s4779; RV64IXQCCMP-NEXT:    .cfi_restore s5780; RV64IXQCCMP-NEXT:    .cfi_restore s6781; RV64IXQCCMP-NEXT:    .cfi_restore s7782; RV64IXQCCMP-NEXT:    .cfi_def_cfa_offset 0783; RV64IXQCCMP-NEXT:    tail callee784;785; RV32IXQCCMP-FP-LABEL: nocompress:786; RV32IXQCCMP-FP:       # %bb.0: # %entry787; RV32IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0-s7}, -48788; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 48789; RV32IXQCCMP-FP-NEXT:    .cfi_offset ra, -4790; RV32IXQCCMP-FP-NEXT:    .cfi_offset s0, -8791; RV32IXQCCMP-FP-NEXT:    .cfi_offset s1, -12792; RV32IXQCCMP-FP-NEXT:    .cfi_offset s2, -16793; RV32IXQCCMP-FP-NEXT:    .cfi_offset s3, -20794; RV32IXQCCMP-FP-NEXT:    .cfi_offset s4, -24795; RV32IXQCCMP-FP-NEXT:    .cfi_offset s5, -28796; RV32IXQCCMP-FP-NEXT:    .cfi_offset s6, -32797; RV32IXQCCMP-FP-NEXT:    .cfi_offset s7, -36798; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 0799; RV32IXQCCMP-FP-NEXT:    addi a0, a0, 15800; RV32IXQCCMP-FP-NEXT:    andi a0, a0, -16801; RV32IXQCCMP-FP-NEXT:    sub s2, sp, a0802; RV32IXQCCMP-FP-NEXT:    mv sp, s2803; RV32IXQCCMP-FP-NEXT:    lui s1, %hi(var)804; RV32IXQCCMP-FP-NEXT:    addi s1, s1, %lo(var)805; RV32IXQCCMP-FP-NEXT:    lw s3, 0(s1)806; RV32IXQCCMP-FP-NEXT:    lw s4, 4(s1)807; RV32IXQCCMP-FP-NEXT:    lw s5, 8(s1)808; RV32IXQCCMP-FP-NEXT:    lw s6, 12(s1)809; RV32IXQCCMP-FP-NEXT:    lw s7, 16(s1)810; RV32IXQCCMP-FP-NEXT:    mv a0, s2811; RV32IXQCCMP-FP-NEXT:    call callee_void812; RV32IXQCCMP-FP-NEXT:    sw s7, 16(s1)813; RV32IXQCCMP-FP-NEXT:    sw s6, 12(s1)814; RV32IXQCCMP-FP-NEXT:    sw s5, 8(s1)815; RV32IXQCCMP-FP-NEXT:    sw s4, 4(s1)816; RV32IXQCCMP-FP-NEXT:    sw s3, 0(s1)817; RV32IXQCCMP-FP-NEXT:    mv a0, s2818; RV32IXQCCMP-FP-NEXT:    addi sp, s0, -48819; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 48820; RV32IXQCCMP-FP-NEXT:    qc.cm.pop {ra, s0-s7}, 48821; RV32IXQCCMP-FP-NEXT:    .cfi_restore ra822; RV32IXQCCMP-FP-NEXT:    .cfi_restore s0823; RV32IXQCCMP-FP-NEXT:    .cfi_restore s1824; RV32IXQCCMP-FP-NEXT:    .cfi_restore s2825; RV32IXQCCMP-FP-NEXT:    .cfi_restore s3826; RV32IXQCCMP-FP-NEXT:    .cfi_restore s4827; RV32IXQCCMP-FP-NEXT:    .cfi_restore s5828; RV32IXQCCMP-FP-NEXT:    .cfi_restore s6829; RV32IXQCCMP-FP-NEXT:    .cfi_restore s7830; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 0831; RV32IXQCCMP-FP-NEXT:    tail callee832;833; RV64IXQCCMP-FP-LABEL: nocompress:834; RV64IXQCCMP-FP:       # %bb.0: # %entry835; RV64IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0-s7}, -80836; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 80837; RV64IXQCCMP-FP-NEXT:    .cfi_offset ra, -8838; RV64IXQCCMP-FP-NEXT:    .cfi_offset s0, -16839; RV64IXQCCMP-FP-NEXT:    .cfi_offset s1, -24840; RV64IXQCCMP-FP-NEXT:    .cfi_offset s2, -32841; RV64IXQCCMP-FP-NEXT:    .cfi_offset s3, -40842; RV64IXQCCMP-FP-NEXT:    .cfi_offset s4, -48843; RV64IXQCCMP-FP-NEXT:    .cfi_offset s5, -56844; RV64IXQCCMP-FP-NEXT:    .cfi_offset s6, -64845; RV64IXQCCMP-FP-NEXT:    .cfi_offset s7, -72846; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 0847; RV64IXQCCMP-FP-NEXT:    slli a0, a0, 32848; RV64IXQCCMP-FP-NEXT:    srli a0, a0, 32849; RV64IXQCCMP-FP-NEXT:    addi a0, a0, 15850; RV64IXQCCMP-FP-NEXT:    andi a0, a0, -16851; RV64IXQCCMP-FP-NEXT:    sub s2, sp, a0852; RV64IXQCCMP-FP-NEXT:    mv sp, s2853; RV64IXQCCMP-FP-NEXT:    lui s1, %hi(var)854; RV64IXQCCMP-FP-NEXT:    addi s1, s1, %lo(var)855; RV64IXQCCMP-FP-NEXT:    lw s3, 0(s1)856; RV64IXQCCMP-FP-NEXT:    lw s4, 4(s1)857; RV64IXQCCMP-FP-NEXT:    lw s5, 8(s1)858; RV64IXQCCMP-FP-NEXT:    lw s6, 12(s1)859; RV64IXQCCMP-FP-NEXT:    lw s7, 16(s1)860; RV64IXQCCMP-FP-NEXT:    mv a0, s2861; RV64IXQCCMP-FP-NEXT:    call callee_void862; RV64IXQCCMP-FP-NEXT:    sw s7, 16(s1)863; RV64IXQCCMP-FP-NEXT:    sw s6, 12(s1)864; RV64IXQCCMP-FP-NEXT:    sw s5, 8(s1)865; RV64IXQCCMP-FP-NEXT:    sw s4, 4(s1)866; RV64IXQCCMP-FP-NEXT:    sw s3, 0(s1)867; RV64IXQCCMP-FP-NEXT:    mv a0, s2868; RV64IXQCCMP-FP-NEXT:    addi sp, s0, -80869; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 80870; RV64IXQCCMP-FP-NEXT:    qc.cm.pop {ra, s0-s7}, 80871; RV64IXQCCMP-FP-NEXT:    .cfi_restore ra872; RV64IXQCCMP-FP-NEXT:    .cfi_restore s0873; RV64IXQCCMP-FP-NEXT:    .cfi_restore s1874; RV64IXQCCMP-FP-NEXT:    .cfi_restore s2875; RV64IXQCCMP-FP-NEXT:    .cfi_restore s3876; RV64IXQCCMP-FP-NEXT:    .cfi_restore s4877; RV64IXQCCMP-FP-NEXT:    .cfi_restore s5878; RV64IXQCCMP-FP-NEXT:    .cfi_restore s6879; RV64IXQCCMP-FP-NEXT:    .cfi_restore s7880; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 0881; RV64IXQCCMP-FP-NEXT:    tail callee882;883; RV32IXQCCMP-SR-LABEL: nocompress:884; RV32IXQCCMP-SR:       # %bb.0: # %entry885; RV32IXQCCMP-SR-NEXT:    qc.cm.pushfp {ra, s0-s7}, -48886; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 48887; RV32IXQCCMP-SR-NEXT:    .cfi_offset ra, -4888; RV32IXQCCMP-SR-NEXT:    .cfi_offset s0, -8889; RV32IXQCCMP-SR-NEXT:    .cfi_offset s1, -12890; RV32IXQCCMP-SR-NEXT:    .cfi_offset s2, -16891; RV32IXQCCMP-SR-NEXT:    .cfi_offset s3, -20892; RV32IXQCCMP-SR-NEXT:    .cfi_offset s4, -24893; RV32IXQCCMP-SR-NEXT:    .cfi_offset s5, -28894; RV32IXQCCMP-SR-NEXT:    .cfi_offset s6, -32895; RV32IXQCCMP-SR-NEXT:    .cfi_offset s7, -36896; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa s0, 0897; RV32IXQCCMP-SR-NEXT:    addi a0, a0, 15898; RV32IXQCCMP-SR-NEXT:    andi a0, a0, -16899; RV32IXQCCMP-SR-NEXT:    sub s2, sp, a0900; RV32IXQCCMP-SR-NEXT:    mv sp, s2901; RV32IXQCCMP-SR-NEXT:    lui s1, %hi(var)902; RV32IXQCCMP-SR-NEXT:    addi s1, s1, %lo(var)903; RV32IXQCCMP-SR-NEXT:    lw s3, 0(s1)904; RV32IXQCCMP-SR-NEXT:    lw s4, 4(s1)905; RV32IXQCCMP-SR-NEXT:    lw s5, 8(s1)906; RV32IXQCCMP-SR-NEXT:    lw s6, 12(s1)907; RV32IXQCCMP-SR-NEXT:    lw s7, 16(s1)908; RV32IXQCCMP-SR-NEXT:    mv a0, s2909; RV32IXQCCMP-SR-NEXT:    call callee_void910; RV32IXQCCMP-SR-NEXT:    sw s7, 16(s1)911; RV32IXQCCMP-SR-NEXT:    sw s6, 12(s1)912; RV32IXQCCMP-SR-NEXT:    sw s5, 8(s1)913; RV32IXQCCMP-SR-NEXT:    sw s4, 4(s1)914; RV32IXQCCMP-SR-NEXT:    sw s3, 0(s1)915; RV32IXQCCMP-SR-NEXT:    mv a0, s2916; RV32IXQCCMP-SR-NEXT:    addi sp, s0, -48917; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa sp, 48918; RV32IXQCCMP-SR-NEXT:    qc.cm.pop {ra, s0-s7}, 48919; RV32IXQCCMP-SR-NEXT:    .cfi_restore ra920; RV32IXQCCMP-SR-NEXT:    .cfi_restore s0921; RV32IXQCCMP-SR-NEXT:    .cfi_restore s1922; RV32IXQCCMP-SR-NEXT:    .cfi_restore s2923; RV32IXQCCMP-SR-NEXT:    .cfi_restore s3924; RV32IXQCCMP-SR-NEXT:    .cfi_restore s4925; RV32IXQCCMP-SR-NEXT:    .cfi_restore s5926; RV32IXQCCMP-SR-NEXT:    .cfi_restore s6927; RV32IXQCCMP-SR-NEXT:    .cfi_restore s7928; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 0929; RV32IXQCCMP-SR-NEXT:    tail callee930;931; RV64IXQCCMP-SR-LABEL: nocompress:932; RV64IXQCCMP-SR:       # %bb.0: # %entry933; RV64IXQCCMP-SR-NEXT:    qc.cm.pushfp {ra, s0-s7}, -80934; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 80935; RV64IXQCCMP-SR-NEXT:    .cfi_offset ra, -8936; RV64IXQCCMP-SR-NEXT:    .cfi_offset s0, -16937; RV64IXQCCMP-SR-NEXT:    .cfi_offset s1, -24938; RV64IXQCCMP-SR-NEXT:    .cfi_offset s2, -32939; RV64IXQCCMP-SR-NEXT:    .cfi_offset s3, -40940; RV64IXQCCMP-SR-NEXT:    .cfi_offset s4, -48941; RV64IXQCCMP-SR-NEXT:    .cfi_offset s5, -56942; RV64IXQCCMP-SR-NEXT:    .cfi_offset s6, -64943; RV64IXQCCMP-SR-NEXT:    .cfi_offset s7, -72944; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa s0, 0945; RV64IXQCCMP-SR-NEXT:    slli a0, a0, 32946; RV64IXQCCMP-SR-NEXT:    srli a0, a0, 32947; RV64IXQCCMP-SR-NEXT:    addi a0, a0, 15948; RV64IXQCCMP-SR-NEXT:    andi a0, a0, -16949; RV64IXQCCMP-SR-NEXT:    sub s2, sp, a0950; RV64IXQCCMP-SR-NEXT:    mv sp, s2951; RV64IXQCCMP-SR-NEXT:    lui s1, %hi(var)952; RV64IXQCCMP-SR-NEXT:    addi s1, s1, %lo(var)953; RV64IXQCCMP-SR-NEXT:    lw s3, 0(s1)954; RV64IXQCCMP-SR-NEXT:    lw s4, 4(s1)955; RV64IXQCCMP-SR-NEXT:    lw s5, 8(s1)956; RV64IXQCCMP-SR-NEXT:    lw s6, 12(s1)957; RV64IXQCCMP-SR-NEXT:    lw s7, 16(s1)958; RV64IXQCCMP-SR-NEXT:    mv a0, s2959; RV64IXQCCMP-SR-NEXT:    call callee_void960; RV64IXQCCMP-SR-NEXT:    sw s7, 16(s1)961; RV64IXQCCMP-SR-NEXT:    sw s6, 12(s1)962; RV64IXQCCMP-SR-NEXT:    sw s5, 8(s1)963; RV64IXQCCMP-SR-NEXT:    sw s4, 4(s1)964; RV64IXQCCMP-SR-NEXT:    sw s3, 0(s1)965; RV64IXQCCMP-SR-NEXT:    mv a0, s2966; RV64IXQCCMP-SR-NEXT:    addi sp, s0, -80967; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa sp, 80968; RV64IXQCCMP-SR-NEXT:    qc.cm.pop {ra, s0-s7}, 80969; RV64IXQCCMP-SR-NEXT:    .cfi_restore ra970; RV64IXQCCMP-SR-NEXT:    .cfi_restore s0971; RV64IXQCCMP-SR-NEXT:    .cfi_restore s1972; RV64IXQCCMP-SR-NEXT:    .cfi_restore s2973; RV64IXQCCMP-SR-NEXT:    .cfi_restore s3974; RV64IXQCCMP-SR-NEXT:    .cfi_restore s4975; RV64IXQCCMP-SR-NEXT:    .cfi_restore s5976; RV64IXQCCMP-SR-NEXT:    .cfi_restore s6977; RV64IXQCCMP-SR-NEXT:    .cfi_restore s7978; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 0979; RV64IXQCCMP-SR-NEXT:    tail callee980entry:981  %0 = alloca i8, i32 %size, align 16982  %val = load [5 x i32], ptr @var983  call void @callee_void(ptr nonnull %0)984  store volatile [5 x i32] %val, ptr @var985  %1 = tail call i32 @callee(ptr nonnull %0)986  ret i32 %1987}988 989; Check that functions with varargs do not use save/restore code990 991define i32 @varargs(ptr %fmt, ...) {992; RV32IXQCCMP-LABEL: varargs:993; RV32IXQCCMP:       # %bb.0:994; RV32IXQCCMP-NEXT:    addi sp, sp, -48995; RV32IXQCCMP-NEXT:    .cfi_def_cfa_offset 48996; RV32IXQCCMP-NEXT:    mv a0, a1997; RV32IXQCCMP-NEXT:    sw a5, 36(sp)998; RV32IXQCCMP-NEXT:    sw a6, 40(sp)999; RV32IXQCCMP-NEXT:    sw a7, 44(sp)1000; RV32IXQCCMP-NEXT:    sw a1, 20(sp)1001; RV32IXQCCMP-NEXT:    sw a2, 24(sp)1002; RV32IXQCCMP-NEXT:    sw a3, 28(sp)1003; RV32IXQCCMP-NEXT:    sw a4, 32(sp)1004; RV32IXQCCMP-NEXT:    addi a1, sp, 241005; RV32IXQCCMP-NEXT:    sw a1, 12(sp)1006; RV32IXQCCMP-NEXT:    addi sp, sp, 481007; RV32IXQCCMP-NEXT:    .cfi_def_cfa_offset 01008; RV32IXQCCMP-NEXT:    ret1009;1010; RV64IXQCCMP-LABEL: varargs:1011; RV64IXQCCMP:       # %bb.0:1012; RV64IXQCCMP-NEXT:    addi sp, sp, -801013; RV64IXQCCMP-NEXT:    .cfi_def_cfa_offset 801014; RV64IXQCCMP-NEXT:    sd a1, 24(sp)1015; RV64IXQCCMP-NEXT:    addi a0, sp, 281016; RV64IXQCCMP-NEXT:    sd a0, 8(sp)1017; RV64IXQCCMP-NEXT:    lw a0, 24(sp)1018; RV64IXQCCMP-NEXT:    sd a5, 56(sp)1019; RV64IXQCCMP-NEXT:    sd a6, 64(sp)1020; RV64IXQCCMP-NEXT:    sd a7, 72(sp)1021; RV64IXQCCMP-NEXT:    sd a2, 32(sp)1022; RV64IXQCCMP-NEXT:    sd a3, 40(sp)1023; RV64IXQCCMP-NEXT:    sd a4, 48(sp)1024; RV64IXQCCMP-NEXT:    addi sp, sp, 801025; RV64IXQCCMP-NEXT:    .cfi_def_cfa_offset 01026; RV64IXQCCMP-NEXT:    ret1027;1028; RV32IXQCCMP-FP-LABEL: varargs:1029; RV32IXQCCMP-FP:       # %bb.0:1030; RV32IXQCCMP-FP-NEXT:    addi sp, sp, -481031; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 481032; RV32IXQCCMP-FP-NEXT:    sw ra, 12(sp) # 4-byte Folded Spill1033; RV32IXQCCMP-FP-NEXT:    sw s0, 8(sp) # 4-byte Folded Spill1034; RV32IXQCCMP-FP-NEXT:    .cfi_offset ra, -361035; RV32IXQCCMP-FP-NEXT:    .cfi_offset s0, -401036; RV32IXQCCMP-FP-NEXT:    addi s0, sp, 161037; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 321038; RV32IXQCCMP-FP-NEXT:    mv a0, a11039; RV32IXQCCMP-FP-NEXT:    sw a5, 20(s0)1040; RV32IXQCCMP-FP-NEXT:    sw a6, 24(s0)1041; RV32IXQCCMP-FP-NEXT:    sw a7, 28(s0)1042; RV32IXQCCMP-FP-NEXT:    sw a1, 4(s0)1043; RV32IXQCCMP-FP-NEXT:    sw a2, 8(s0)1044; RV32IXQCCMP-FP-NEXT:    sw a3, 12(s0)1045; RV32IXQCCMP-FP-NEXT:    sw a4, 16(s0)1046; RV32IXQCCMP-FP-NEXT:    addi a1, s0, 81047; RV32IXQCCMP-FP-NEXT:    sw a1, -12(s0)1048; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 481049; RV32IXQCCMP-FP-NEXT:    lw ra, 12(sp) # 4-byte Folded Reload1050; RV32IXQCCMP-FP-NEXT:    lw s0, 8(sp) # 4-byte Folded Reload1051; RV32IXQCCMP-FP-NEXT:    .cfi_restore ra1052; RV32IXQCCMP-FP-NEXT:    .cfi_restore s01053; RV32IXQCCMP-FP-NEXT:    addi sp, sp, 481054; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 01055; RV32IXQCCMP-FP-NEXT:    ret1056;1057; RV64IXQCCMP-FP-LABEL: varargs:1058; RV64IXQCCMP-FP:       # %bb.0:1059; RV64IXQCCMP-FP-NEXT:    addi sp, sp, -961060; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 961061; RV64IXQCCMP-FP-NEXT:    sd ra, 24(sp) # 8-byte Folded Spill1062; RV64IXQCCMP-FP-NEXT:    sd s0, 16(sp) # 8-byte Folded Spill1063; RV64IXQCCMP-FP-NEXT:    .cfi_offset ra, -721064; RV64IXQCCMP-FP-NEXT:    .cfi_offset s0, -801065; RV64IXQCCMP-FP-NEXT:    addi s0, sp, 321066; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 641067; RV64IXQCCMP-FP-NEXT:    sd a1, 8(s0)1068; RV64IXQCCMP-FP-NEXT:    addi a0, s0, 121069; RV64IXQCCMP-FP-NEXT:    sd a0, -24(s0)1070; RV64IXQCCMP-FP-NEXT:    lw a0, 8(s0)1071; RV64IXQCCMP-FP-NEXT:    sd a5, 40(s0)1072; RV64IXQCCMP-FP-NEXT:    sd a6, 48(s0)1073; RV64IXQCCMP-FP-NEXT:    sd a7, 56(s0)1074; RV64IXQCCMP-FP-NEXT:    sd a2, 16(s0)1075; RV64IXQCCMP-FP-NEXT:    sd a3, 24(s0)1076; RV64IXQCCMP-FP-NEXT:    sd a4, 32(s0)1077; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 961078; RV64IXQCCMP-FP-NEXT:    ld ra, 24(sp) # 8-byte Folded Reload1079; RV64IXQCCMP-FP-NEXT:    ld s0, 16(sp) # 8-byte Folded Reload1080; RV64IXQCCMP-FP-NEXT:    .cfi_restore ra1081; RV64IXQCCMP-FP-NEXT:    .cfi_restore s01082; RV64IXQCCMP-FP-NEXT:    addi sp, sp, 961083; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 01084; RV64IXQCCMP-FP-NEXT:    ret1085;1086; RV32IXQCCMP-SR-LABEL: varargs:1087; RV32IXQCCMP-SR:       # %bb.0:1088; RV32IXQCCMP-SR-NEXT:    addi sp, sp, -481089; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 481090; RV32IXQCCMP-SR-NEXT:    mv a0, a11091; RV32IXQCCMP-SR-NEXT:    sw a5, 36(sp)1092; RV32IXQCCMP-SR-NEXT:    sw a6, 40(sp)1093; RV32IXQCCMP-SR-NEXT:    sw a7, 44(sp)1094; RV32IXQCCMP-SR-NEXT:    sw a1, 20(sp)1095; RV32IXQCCMP-SR-NEXT:    sw a2, 24(sp)1096; RV32IXQCCMP-SR-NEXT:    sw a3, 28(sp)1097; RV32IXQCCMP-SR-NEXT:    sw a4, 32(sp)1098; RV32IXQCCMP-SR-NEXT:    addi a1, sp, 241099; RV32IXQCCMP-SR-NEXT:    sw a1, 12(sp)1100; RV32IXQCCMP-SR-NEXT:    addi sp, sp, 481101; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 01102; RV32IXQCCMP-SR-NEXT:    ret1103;1104; RV64IXQCCMP-SR-LABEL: varargs:1105; RV64IXQCCMP-SR:       # %bb.0:1106; RV64IXQCCMP-SR-NEXT:    addi sp, sp, -801107; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 801108; RV64IXQCCMP-SR-NEXT:    sd a1, 24(sp)1109; RV64IXQCCMP-SR-NEXT:    addi a0, sp, 281110; RV64IXQCCMP-SR-NEXT:    sd a0, 8(sp)1111; RV64IXQCCMP-SR-NEXT:    lw a0, 24(sp)1112; RV64IXQCCMP-SR-NEXT:    sd a5, 56(sp)1113; RV64IXQCCMP-SR-NEXT:    sd a6, 64(sp)1114; RV64IXQCCMP-SR-NEXT:    sd a7, 72(sp)1115; RV64IXQCCMP-SR-NEXT:    sd a2, 32(sp)1116; RV64IXQCCMP-SR-NEXT:    sd a3, 40(sp)1117; RV64IXQCCMP-SR-NEXT:    sd a4, 48(sp)1118; RV64IXQCCMP-SR-NEXT:    addi sp, sp, 801119; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 01120; RV64IXQCCMP-SR-NEXT:    ret1121  %va = alloca ptr1122  call void @llvm.va_start(ptr %va)1123  %argp.cur = load ptr, ptr %va1124  %argp.next = getelementptr inbounds i8, ptr %argp.cur, i32 41125  store ptr %argp.next, ptr %va1126  %1 = load i32, ptr %argp.cur1127  call void @llvm.va_end(ptr %va)1128  ret i32 %11129}1130 1131@var0 = global [18 x i32] zeroinitializer1132 1133define void @many_args(i32, i32, i32, i32, i32, i32, i32, i32, i32) {1134; RV32IXQCCMP-LABEL: many_args:1135; RV32IXQCCMP:       # %bb.0: # %entry1136; RV32IXQCCMP-NEXT:    qc.cm.push {ra, s0-s3}, -321137; RV32IXQCCMP-NEXT:    .cfi_def_cfa_offset 321138; RV32IXQCCMP-NEXT:    .cfi_offset s0, -81139; RV32IXQCCMP-NEXT:    .cfi_offset s1, -121140; RV32IXQCCMP-NEXT:    .cfi_offset s2, -161141; RV32IXQCCMP-NEXT:    .cfi_offset s3, -201142; RV32IXQCCMP-NEXT:    lui a0, %hi(var0)1143; RV32IXQCCMP-NEXT:    addi a0, a0, %lo(var0)1144; RV32IXQCCMP-NEXT:    lw a6, 0(a0)1145; RV32IXQCCMP-NEXT:    lw a7, 4(a0)1146; RV32IXQCCMP-NEXT:    lw t0, 8(a0)1147; RV32IXQCCMP-NEXT:    lw t1, 12(a0)1148; RV32IXQCCMP-NEXT:    lw t2, 16(a0)1149; RV32IXQCCMP-NEXT:    lw t3, 20(a0)1150; RV32IXQCCMP-NEXT:    lw t4, 24(a0)1151; RV32IXQCCMP-NEXT:    lw t5, 28(a0)1152; RV32IXQCCMP-NEXT:    lw t6, 48(a0)1153; RV32IXQCCMP-NEXT:    lw s2, 52(a0)1154; RV32IXQCCMP-NEXT:    lw a1, 56(a0)1155; RV32IXQCCMP-NEXT:    lw a2, 60(a0)1156; RV32IXQCCMP-NEXT:    lw a3, 64(a0)1157; RV32IXQCCMP-NEXT:    lw a4, 68(a0)1158; RV32IXQCCMP-NEXT:    lw s3, 32(a0)1159; RV32IXQCCMP-NEXT:    lw s1, 36(a0)1160; RV32IXQCCMP-NEXT:    lw a5, 40(a0)1161; RV32IXQCCMP-NEXT:    lw s0, 44(a0)1162; RV32IXQCCMP-NEXT:    sw a4, 68(a0)1163; RV32IXQCCMP-NEXT:    sw a3, 64(a0)1164; RV32IXQCCMP-NEXT:    sw a2, 60(a0)1165; RV32IXQCCMP-NEXT:    sw a1, 56(a0)1166; RV32IXQCCMP-NEXT:    sw s2, 52(a0)1167; RV32IXQCCMP-NEXT:    sw t6, 48(a0)1168; RV32IXQCCMP-NEXT:    sw s0, 44(a0)1169; RV32IXQCCMP-NEXT:    sw a5, 40(a0)1170; RV32IXQCCMP-NEXT:    sw s1, 36(a0)1171; RV32IXQCCMP-NEXT:    sw s3, 32(a0)1172; RV32IXQCCMP-NEXT:    sw t5, 28(a0)1173; RV32IXQCCMP-NEXT:    sw t4, 24(a0)1174; RV32IXQCCMP-NEXT:    sw t3, 20(a0)1175; RV32IXQCCMP-NEXT:    sw t2, 16(a0)1176; RV32IXQCCMP-NEXT:    sw t1, 12(a0)1177; RV32IXQCCMP-NEXT:    sw t0, 8(a0)1178; RV32IXQCCMP-NEXT:    sw a7, 4(a0)1179; RV32IXQCCMP-NEXT:    sw a6, 0(a0)1180; RV32IXQCCMP-NEXT:    qc.cm.popret {ra, s0-s3}, 321181;1182; RV64IXQCCMP-LABEL: many_args:1183; RV64IXQCCMP:       # %bb.0: # %entry1184; RV64IXQCCMP-NEXT:    qc.cm.push {ra, s0-s3}, -481185; RV64IXQCCMP-NEXT:    .cfi_def_cfa_offset 481186; RV64IXQCCMP-NEXT:    .cfi_offset s0, -161187; RV64IXQCCMP-NEXT:    .cfi_offset s1, -241188; RV64IXQCCMP-NEXT:    .cfi_offset s2, -321189; RV64IXQCCMP-NEXT:    .cfi_offset s3, -401190; RV64IXQCCMP-NEXT:    lui a0, %hi(var0)1191; RV64IXQCCMP-NEXT:    addi a0, a0, %lo(var0)1192; RV64IXQCCMP-NEXT:    lw a6, 0(a0)1193; RV64IXQCCMP-NEXT:    lw a7, 4(a0)1194; RV64IXQCCMP-NEXT:    lw t0, 8(a0)1195; RV64IXQCCMP-NEXT:    lw t1, 12(a0)1196; RV64IXQCCMP-NEXT:    lw t2, 16(a0)1197; RV64IXQCCMP-NEXT:    lw t3, 20(a0)1198; RV64IXQCCMP-NEXT:    lw t4, 24(a0)1199; RV64IXQCCMP-NEXT:    lw t5, 28(a0)1200; RV64IXQCCMP-NEXT:    lw t6, 48(a0)1201; RV64IXQCCMP-NEXT:    lw s2, 52(a0)1202; RV64IXQCCMP-NEXT:    lw a1, 56(a0)1203; RV64IXQCCMP-NEXT:    lw a2, 60(a0)1204; RV64IXQCCMP-NEXT:    lw a3, 64(a0)1205; RV64IXQCCMP-NEXT:    lw a4, 68(a0)1206; RV64IXQCCMP-NEXT:    lw s3, 32(a0)1207; RV64IXQCCMP-NEXT:    lw s1, 36(a0)1208; RV64IXQCCMP-NEXT:    lw a5, 40(a0)1209; RV64IXQCCMP-NEXT:    lw s0, 44(a0)1210; RV64IXQCCMP-NEXT:    sw a4, 68(a0)1211; RV64IXQCCMP-NEXT:    sw a3, 64(a0)1212; RV64IXQCCMP-NEXT:    sw a2, 60(a0)1213; RV64IXQCCMP-NEXT:    sw a1, 56(a0)1214; RV64IXQCCMP-NEXT:    sw s2, 52(a0)1215; RV64IXQCCMP-NEXT:    sw t6, 48(a0)1216; RV64IXQCCMP-NEXT:    sw s0, 44(a0)1217; RV64IXQCCMP-NEXT:    sw a5, 40(a0)1218; RV64IXQCCMP-NEXT:    sw s1, 36(a0)1219; RV64IXQCCMP-NEXT:    sw s3, 32(a0)1220; RV64IXQCCMP-NEXT:    sw t5, 28(a0)1221; RV64IXQCCMP-NEXT:    sw t4, 24(a0)1222; RV64IXQCCMP-NEXT:    sw t3, 20(a0)1223; RV64IXQCCMP-NEXT:    sw t2, 16(a0)1224; RV64IXQCCMP-NEXT:    sw t1, 12(a0)1225; RV64IXQCCMP-NEXT:    sw t0, 8(a0)1226; RV64IXQCCMP-NEXT:    sw a7, 4(a0)1227; RV64IXQCCMP-NEXT:    sw a6, 0(a0)1228; RV64IXQCCMP-NEXT:    qc.cm.popret {ra, s0-s3}, 481229;1230; RV32IXQCCMP-FP-LABEL: many_args:1231; RV32IXQCCMP-FP:       # %bb.0: # %entry1232; RV32IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0-s4}, -321233; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 321234; RV32IXQCCMP-FP-NEXT:    .cfi_offset ra, -41235; RV32IXQCCMP-FP-NEXT:    .cfi_offset s0, -81236; RV32IXQCCMP-FP-NEXT:    .cfi_offset s1, -121237; RV32IXQCCMP-FP-NEXT:    .cfi_offset s2, -161238; RV32IXQCCMP-FP-NEXT:    .cfi_offset s3, -201239; RV32IXQCCMP-FP-NEXT:    .cfi_offset s4, -241240; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 01241; RV32IXQCCMP-FP-NEXT:    lui a0, %hi(var0)1242; RV32IXQCCMP-FP-NEXT:    addi a0, a0, %lo(var0)1243; RV32IXQCCMP-FP-NEXT:    lw a6, 0(a0)1244; RV32IXQCCMP-FP-NEXT:    lw a7, 4(a0)1245; RV32IXQCCMP-FP-NEXT:    lw t0, 8(a0)1246; RV32IXQCCMP-FP-NEXT:    lw t1, 12(a0)1247; RV32IXQCCMP-FP-NEXT:    lw t2, 16(a0)1248; RV32IXQCCMP-FP-NEXT:    lw t3, 20(a0)1249; RV32IXQCCMP-FP-NEXT:    lw t4, 24(a0)1250; RV32IXQCCMP-FP-NEXT:    lw t5, 28(a0)1251; RV32IXQCCMP-FP-NEXT:    lw t6, 48(a0)1252; RV32IXQCCMP-FP-NEXT:    lw s2, 52(a0)1253; RV32IXQCCMP-FP-NEXT:    lw s4, 56(a0)1254; RV32IXQCCMP-FP-NEXT:    lw a2, 60(a0)1255; RV32IXQCCMP-FP-NEXT:    lw a3, 64(a0)1256; RV32IXQCCMP-FP-NEXT:    lw a4, 68(a0)1257; RV32IXQCCMP-FP-NEXT:    lw s3, 32(a0)1258; RV32IXQCCMP-FP-NEXT:    lw a5, 36(a0)1259; RV32IXQCCMP-FP-NEXT:    lw s1, 40(a0)1260; RV32IXQCCMP-FP-NEXT:    lw a1, 44(a0)1261; RV32IXQCCMP-FP-NEXT:    sw a4, 68(a0)1262; RV32IXQCCMP-FP-NEXT:    sw a3, 64(a0)1263; RV32IXQCCMP-FP-NEXT:    sw a2, 60(a0)1264; RV32IXQCCMP-FP-NEXT:    sw s4, 56(a0)1265; RV32IXQCCMP-FP-NEXT:    sw s2, 52(a0)1266; RV32IXQCCMP-FP-NEXT:    sw t6, 48(a0)1267; RV32IXQCCMP-FP-NEXT:    sw a1, 44(a0)1268; RV32IXQCCMP-FP-NEXT:    sw s1, 40(a0)1269; RV32IXQCCMP-FP-NEXT:    sw a5, 36(a0)1270; RV32IXQCCMP-FP-NEXT:    sw s3, 32(a0)1271; RV32IXQCCMP-FP-NEXT:    sw t5, 28(a0)1272; RV32IXQCCMP-FP-NEXT:    sw t4, 24(a0)1273; RV32IXQCCMP-FP-NEXT:    sw t3, 20(a0)1274; RV32IXQCCMP-FP-NEXT:    sw t2, 16(a0)1275; RV32IXQCCMP-FP-NEXT:    sw t1, 12(a0)1276; RV32IXQCCMP-FP-NEXT:    sw t0, 8(a0)1277; RV32IXQCCMP-FP-NEXT:    sw a7, 4(a0)1278; RV32IXQCCMP-FP-NEXT:    sw a6, 0(a0)1279; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 321280; RV32IXQCCMP-FP-NEXT:    qc.cm.popret {ra, s0-s4}, 321281;1282; RV64IXQCCMP-FP-LABEL: many_args:1283; RV64IXQCCMP-FP:       # %bb.0: # %entry1284; RV64IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0-s4}, -481285; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 481286; RV64IXQCCMP-FP-NEXT:    .cfi_offset ra, -81287; RV64IXQCCMP-FP-NEXT:    .cfi_offset s0, -161288; RV64IXQCCMP-FP-NEXT:    .cfi_offset s1, -241289; RV64IXQCCMP-FP-NEXT:    .cfi_offset s2, -321290; RV64IXQCCMP-FP-NEXT:    .cfi_offset s3, -401291; RV64IXQCCMP-FP-NEXT:    .cfi_offset s4, -481292; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 01293; RV64IXQCCMP-FP-NEXT:    lui a0, %hi(var0)1294; RV64IXQCCMP-FP-NEXT:    addi a0, a0, %lo(var0)1295; RV64IXQCCMP-FP-NEXT:    lw a6, 0(a0)1296; RV64IXQCCMP-FP-NEXT:    lw a7, 4(a0)1297; RV64IXQCCMP-FP-NEXT:    lw t0, 8(a0)1298; RV64IXQCCMP-FP-NEXT:    lw t1, 12(a0)1299; RV64IXQCCMP-FP-NEXT:    lw t2, 16(a0)1300; RV64IXQCCMP-FP-NEXT:    lw t3, 20(a0)1301; RV64IXQCCMP-FP-NEXT:    lw t4, 24(a0)1302; RV64IXQCCMP-FP-NEXT:    lw t5, 28(a0)1303; RV64IXQCCMP-FP-NEXT:    lw t6, 48(a0)1304; RV64IXQCCMP-FP-NEXT:    lw s2, 52(a0)1305; RV64IXQCCMP-FP-NEXT:    lw s4, 56(a0)1306; RV64IXQCCMP-FP-NEXT:    lw a2, 60(a0)1307; RV64IXQCCMP-FP-NEXT:    lw a3, 64(a0)1308; RV64IXQCCMP-FP-NEXT:    lw a4, 68(a0)1309; RV64IXQCCMP-FP-NEXT:    lw s3, 32(a0)1310; RV64IXQCCMP-FP-NEXT:    lw a5, 36(a0)1311; RV64IXQCCMP-FP-NEXT:    lw s1, 40(a0)1312; RV64IXQCCMP-FP-NEXT:    lw a1, 44(a0)1313; RV64IXQCCMP-FP-NEXT:    sw a4, 68(a0)1314; RV64IXQCCMP-FP-NEXT:    sw a3, 64(a0)1315; RV64IXQCCMP-FP-NEXT:    sw a2, 60(a0)1316; RV64IXQCCMP-FP-NEXT:    sw s4, 56(a0)1317; RV64IXQCCMP-FP-NEXT:    sw s2, 52(a0)1318; RV64IXQCCMP-FP-NEXT:    sw t6, 48(a0)1319; RV64IXQCCMP-FP-NEXT:    sw a1, 44(a0)1320; RV64IXQCCMP-FP-NEXT:    sw s1, 40(a0)1321; RV64IXQCCMP-FP-NEXT:    sw a5, 36(a0)1322; RV64IXQCCMP-FP-NEXT:    sw s3, 32(a0)1323; RV64IXQCCMP-FP-NEXT:    sw t5, 28(a0)1324; RV64IXQCCMP-FP-NEXT:    sw t4, 24(a0)1325; RV64IXQCCMP-FP-NEXT:    sw t3, 20(a0)1326; RV64IXQCCMP-FP-NEXT:    sw t2, 16(a0)1327; RV64IXQCCMP-FP-NEXT:    sw t1, 12(a0)1328; RV64IXQCCMP-FP-NEXT:    sw t0, 8(a0)1329; RV64IXQCCMP-FP-NEXT:    sw a7, 4(a0)1330; RV64IXQCCMP-FP-NEXT:    sw a6, 0(a0)1331; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 481332; RV64IXQCCMP-FP-NEXT:    qc.cm.popret {ra, s0-s4}, 481333;1334; RV32IXQCCMP-SR-LABEL: many_args:1335; RV32IXQCCMP-SR:       # %bb.0: # %entry1336; RV32IXQCCMP-SR-NEXT:    qc.cm.push {ra, s0-s3}, -321337; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 321338; RV32IXQCCMP-SR-NEXT:    .cfi_offset s0, -81339; RV32IXQCCMP-SR-NEXT:    .cfi_offset s1, -121340; RV32IXQCCMP-SR-NEXT:    .cfi_offset s2, -161341; RV32IXQCCMP-SR-NEXT:    .cfi_offset s3, -201342; RV32IXQCCMP-SR-NEXT:    lui a0, %hi(var0)1343; RV32IXQCCMP-SR-NEXT:    addi a0, a0, %lo(var0)1344; RV32IXQCCMP-SR-NEXT:    lw a6, 0(a0)1345; RV32IXQCCMP-SR-NEXT:    lw a7, 4(a0)1346; RV32IXQCCMP-SR-NEXT:    lw t0, 8(a0)1347; RV32IXQCCMP-SR-NEXT:    lw t1, 12(a0)1348; RV32IXQCCMP-SR-NEXT:    lw t2, 16(a0)1349; RV32IXQCCMP-SR-NEXT:    lw t3, 20(a0)1350; RV32IXQCCMP-SR-NEXT:    lw t4, 24(a0)1351; RV32IXQCCMP-SR-NEXT:    lw t5, 28(a0)1352; RV32IXQCCMP-SR-NEXT:    lw t6, 48(a0)1353; RV32IXQCCMP-SR-NEXT:    lw s2, 52(a0)1354; RV32IXQCCMP-SR-NEXT:    lw a1, 56(a0)1355; RV32IXQCCMP-SR-NEXT:    lw a2, 60(a0)1356; RV32IXQCCMP-SR-NEXT:    lw a3, 64(a0)1357; RV32IXQCCMP-SR-NEXT:    lw a4, 68(a0)1358; RV32IXQCCMP-SR-NEXT:    lw s3, 32(a0)1359; RV32IXQCCMP-SR-NEXT:    lw s1, 36(a0)1360; RV32IXQCCMP-SR-NEXT:    lw a5, 40(a0)1361; RV32IXQCCMP-SR-NEXT:    lw s0, 44(a0)1362; RV32IXQCCMP-SR-NEXT:    sw a4, 68(a0)1363; RV32IXQCCMP-SR-NEXT:    sw a3, 64(a0)1364; RV32IXQCCMP-SR-NEXT:    sw a2, 60(a0)1365; RV32IXQCCMP-SR-NEXT:    sw a1, 56(a0)1366; RV32IXQCCMP-SR-NEXT:    sw s2, 52(a0)1367; RV32IXQCCMP-SR-NEXT:    sw t6, 48(a0)1368; RV32IXQCCMP-SR-NEXT:    sw s0, 44(a0)1369; RV32IXQCCMP-SR-NEXT:    sw a5, 40(a0)1370; RV32IXQCCMP-SR-NEXT:    sw s1, 36(a0)1371; RV32IXQCCMP-SR-NEXT:    sw s3, 32(a0)1372; RV32IXQCCMP-SR-NEXT:    sw t5, 28(a0)1373; RV32IXQCCMP-SR-NEXT:    sw t4, 24(a0)1374; RV32IXQCCMP-SR-NEXT:    sw t3, 20(a0)1375; RV32IXQCCMP-SR-NEXT:    sw t2, 16(a0)1376; RV32IXQCCMP-SR-NEXT:    sw t1, 12(a0)1377; RV32IXQCCMP-SR-NEXT:    sw t0, 8(a0)1378; RV32IXQCCMP-SR-NEXT:    sw a7, 4(a0)1379; RV32IXQCCMP-SR-NEXT:    sw a6, 0(a0)1380; RV32IXQCCMP-SR-NEXT:    qc.cm.popret {ra, s0-s3}, 321381;1382; RV64IXQCCMP-SR-LABEL: many_args:1383; RV64IXQCCMP-SR:       # %bb.0: # %entry1384; RV64IXQCCMP-SR-NEXT:    qc.cm.push {ra, s0-s3}, -481385; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 481386; RV64IXQCCMP-SR-NEXT:    .cfi_offset s0, -161387; RV64IXQCCMP-SR-NEXT:    .cfi_offset s1, -241388; RV64IXQCCMP-SR-NEXT:    .cfi_offset s2, -321389; RV64IXQCCMP-SR-NEXT:    .cfi_offset s3, -401390; RV64IXQCCMP-SR-NEXT:    lui a0, %hi(var0)1391; RV64IXQCCMP-SR-NEXT:    addi a0, a0, %lo(var0)1392; RV64IXQCCMP-SR-NEXT:    lw a6, 0(a0)1393; RV64IXQCCMP-SR-NEXT:    lw a7, 4(a0)1394; RV64IXQCCMP-SR-NEXT:    lw t0, 8(a0)1395; RV64IXQCCMP-SR-NEXT:    lw t1, 12(a0)1396; RV64IXQCCMP-SR-NEXT:    lw t2, 16(a0)1397; RV64IXQCCMP-SR-NEXT:    lw t3, 20(a0)1398; RV64IXQCCMP-SR-NEXT:    lw t4, 24(a0)1399; RV64IXQCCMP-SR-NEXT:    lw t5, 28(a0)1400; RV64IXQCCMP-SR-NEXT:    lw t6, 48(a0)1401; RV64IXQCCMP-SR-NEXT:    lw s2, 52(a0)1402; RV64IXQCCMP-SR-NEXT:    lw a1, 56(a0)1403; RV64IXQCCMP-SR-NEXT:    lw a2, 60(a0)1404; RV64IXQCCMP-SR-NEXT:    lw a3, 64(a0)1405; RV64IXQCCMP-SR-NEXT:    lw a4, 68(a0)1406; RV64IXQCCMP-SR-NEXT:    lw s3, 32(a0)1407; RV64IXQCCMP-SR-NEXT:    lw s1, 36(a0)1408; RV64IXQCCMP-SR-NEXT:    lw a5, 40(a0)1409; RV64IXQCCMP-SR-NEXT:    lw s0, 44(a0)1410; RV64IXQCCMP-SR-NEXT:    sw a4, 68(a0)1411; RV64IXQCCMP-SR-NEXT:    sw a3, 64(a0)1412; RV64IXQCCMP-SR-NEXT:    sw a2, 60(a0)1413; RV64IXQCCMP-SR-NEXT:    sw a1, 56(a0)1414; RV64IXQCCMP-SR-NEXT:    sw s2, 52(a0)1415; RV64IXQCCMP-SR-NEXT:    sw t6, 48(a0)1416; RV64IXQCCMP-SR-NEXT:    sw s0, 44(a0)1417; RV64IXQCCMP-SR-NEXT:    sw a5, 40(a0)1418; RV64IXQCCMP-SR-NEXT:    sw s1, 36(a0)1419; RV64IXQCCMP-SR-NEXT:    sw s3, 32(a0)1420; RV64IXQCCMP-SR-NEXT:    sw t5, 28(a0)1421; RV64IXQCCMP-SR-NEXT:    sw t4, 24(a0)1422; RV64IXQCCMP-SR-NEXT:    sw t3, 20(a0)1423; RV64IXQCCMP-SR-NEXT:    sw t2, 16(a0)1424; RV64IXQCCMP-SR-NEXT:    sw t1, 12(a0)1425; RV64IXQCCMP-SR-NEXT:    sw t0, 8(a0)1426; RV64IXQCCMP-SR-NEXT:    sw a7, 4(a0)1427; RV64IXQCCMP-SR-NEXT:    sw a6, 0(a0)1428; RV64IXQCCMP-SR-NEXT:    qc.cm.popret {ra, s0-s3}, 481429entry:1430  %val = load [18 x i32], ptr @var01431  store volatile [18 x i32] %val, ptr @var01432  ret void1433}1434 1435; Check that dynamic allocation calculations remain correct1436 1437declare void @notdead(ptr)1438 1439define void @alloca(i32 %n) {1440; RV32IXQCCMP-LABEL: alloca:1441; RV32IXQCCMP:       # %bb.0:1442; RV32IXQCCMP-NEXT:    qc.cm.pushfp {ra, s0-s1}, -161443; RV32IXQCCMP-NEXT:    .cfi_def_cfa_offset 161444; RV32IXQCCMP-NEXT:    .cfi_offset ra, -41445; RV32IXQCCMP-NEXT:    .cfi_offset s0, -81446; RV32IXQCCMP-NEXT:    .cfi_offset s1, -121447; RV32IXQCCMP-NEXT:    .cfi_def_cfa s0, 01448; RV32IXQCCMP-NEXT:    mv s1, sp1449; RV32IXQCCMP-NEXT:    addi a0, a0, 151450; RV32IXQCCMP-NEXT:    andi a0, a0, -161451; RV32IXQCCMP-NEXT:    sub a0, sp, a01452; RV32IXQCCMP-NEXT:    mv sp, a01453; RV32IXQCCMP-NEXT:    call notdead1454; RV32IXQCCMP-NEXT:    mv sp, s11455; RV32IXQCCMP-NEXT:    addi sp, s0, -161456; RV32IXQCCMP-NEXT:    .cfi_def_cfa sp, 161457; RV32IXQCCMP-NEXT:    qc.cm.popret {ra, s0-s1}, 161458;1459; RV64IXQCCMP-LABEL: alloca:1460; RV64IXQCCMP:       # %bb.0:1461; RV64IXQCCMP-NEXT:    qc.cm.pushfp {ra, s0-s1}, -321462; RV64IXQCCMP-NEXT:    .cfi_def_cfa_offset 321463; RV64IXQCCMP-NEXT:    .cfi_offset ra, -81464; RV64IXQCCMP-NEXT:    .cfi_offset s0, -161465; RV64IXQCCMP-NEXT:    .cfi_offset s1, -241466; RV64IXQCCMP-NEXT:    .cfi_def_cfa s0, 01467; RV64IXQCCMP-NEXT:    mv s1, sp1468; RV64IXQCCMP-NEXT:    slli a0, a0, 321469; RV64IXQCCMP-NEXT:    srli a0, a0, 321470; RV64IXQCCMP-NEXT:    addi a0, a0, 151471; RV64IXQCCMP-NEXT:    andi a0, a0, -161472; RV64IXQCCMP-NEXT:    sub a0, sp, a01473; RV64IXQCCMP-NEXT:    mv sp, a01474; RV64IXQCCMP-NEXT:    call notdead1475; RV64IXQCCMP-NEXT:    mv sp, s11476; RV64IXQCCMP-NEXT:    addi sp, s0, -321477; RV64IXQCCMP-NEXT:    .cfi_def_cfa sp, 321478; RV64IXQCCMP-NEXT:    qc.cm.popret {ra, s0-s1}, 321479;1480; RV32IXQCCMP-FP-LABEL: alloca:1481; RV32IXQCCMP-FP:       # %bb.0:1482; RV32IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0-s1}, -161483; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 161484; RV32IXQCCMP-FP-NEXT:    .cfi_offset ra, -41485; RV32IXQCCMP-FP-NEXT:    .cfi_offset s0, -81486; RV32IXQCCMP-FP-NEXT:    .cfi_offset s1, -121487; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 01488; RV32IXQCCMP-FP-NEXT:    mv s1, sp1489; RV32IXQCCMP-FP-NEXT:    addi a0, a0, 151490; RV32IXQCCMP-FP-NEXT:    andi a0, a0, -161491; RV32IXQCCMP-FP-NEXT:    sub a0, sp, a01492; RV32IXQCCMP-FP-NEXT:    mv sp, a01493; RV32IXQCCMP-FP-NEXT:    call notdead1494; RV32IXQCCMP-FP-NEXT:    mv sp, s11495; RV32IXQCCMP-FP-NEXT:    addi sp, s0, -161496; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 161497; RV32IXQCCMP-FP-NEXT:    qc.cm.popret {ra, s0-s1}, 161498;1499; RV64IXQCCMP-FP-LABEL: alloca:1500; RV64IXQCCMP-FP:       # %bb.0:1501; RV64IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0-s1}, -321502; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 321503; RV64IXQCCMP-FP-NEXT:    .cfi_offset ra, -81504; RV64IXQCCMP-FP-NEXT:    .cfi_offset s0, -161505; RV64IXQCCMP-FP-NEXT:    .cfi_offset s1, -241506; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 01507; RV64IXQCCMP-FP-NEXT:    mv s1, sp1508; RV64IXQCCMP-FP-NEXT:    slli a0, a0, 321509; RV64IXQCCMP-FP-NEXT:    srli a0, a0, 321510; RV64IXQCCMP-FP-NEXT:    addi a0, a0, 151511; RV64IXQCCMP-FP-NEXT:    andi a0, a0, -161512; RV64IXQCCMP-FP-NEXT:    sub a0, sp, a01513; RV64IXQCCMP-FP-NEXT:    mv sp, a01514; RV64IXQCCMP-FP-NEXT:    call notdead1515; RV64IXQCCMP-FP-NEXT:    mv sp, s11516; RV64IXQCCMP-FP-NEXT:    addi sp, s0, -321517; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 321518; RV64IXQCCMP-FP-NEXT:    qc.cm.popret {ra, s0-s1}, 321519;1520; RV32IXQCCMP-SR-LABEL: alloca:1521; RV32IXQCCMP-SR:       # %bb.0:1522; RV32IXQCCMP-SR-NEXT:    qc.cm.pushfp {ra, s0-s1}, -161523; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 161524; RV32IXQCCMP-SR-NEXT:    .cfi_offset ra, -41525; RV32IXQCCMP-SR-NEXT:    .cfi_offset s0, -81526; RV32IXQCCMP-SR-NEXT:    .cfi_offset s1, -121527; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa s0, 01528; RV32IXQCCMP-SR-NEXT:    mv s1, sp1529; RV32IXQCCMP-SR-NEXT:    addi a0, a0, 151530; RV32IXQCCMP-SR-NEXT:    andi a0, a0, -161531; RV32IXQCCMP-SR-NEXT:    sub a0, sp, a01532; RV32IXQCCMP-SR-NEXT:    mv sp, a01533; RV32IXQCCMP-SR-NEXT:    call notdead1534; RV32IXQCCMP-SR-NEXT:    mv sp, s11535; RV32IXQCCMP-SR-NEXT:    addi sp, s0, -161536; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa sp, 161537; RV32IXQCCMP-SR-NEXT:    qc.cm.popret {ra, s0-s1}, 161538;1539; RV64IXQCCMP-SR-LABEL: alloca:1540; RV64IXQCCMP-SR:       # %bb.0:1541; RV64IXQCCMP-SR-NEXT:    qc.cm.pushfp {ra, s0-s1}, -321542; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 321543; RV64IXQCCMP-SR-NEXT:    .cfi_offset ra, -81544; RV64IXQCCMP-SR-NEXT:    .cfi_offset s0, -161545; RV64IXQCCMP-SR-NEXT:    .cfi_offset s1, -241546; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa s0, 01547; RV64IXQCCMP-SR-NEXT:    mv s1, sp1548; RV64IXQCCMP-SR-NEXT:    slli a0, a0, 321549; RV64IXQCCMP-SR-NEXT:    srli a0, a0, 321550; RV64IXQCCMP-SR-NEXT:    addi a0, a0, 151551; RV64IXQCCMP-SR-NEXT:    andi a0, a0, -161552; RV64IXQCCMP-SR-NEXT:    sub a0, sp, a01553; RV64IXQCCMP-SR-NEXT:    mv sp, a01554; RV64IXQCCMP-SR-NEXT:    call notdead1555; RV64IXQCCMP-SR-NEXT:    mv sp, s11556; RV64IXQCCMP-SR-NEXT:    addi sp, s0, -321557; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa sp, 321558; RV64IXQCCMP-SR-NEXT:    qc.cm.popret {ra, s0-s1}, 321559  %sp = call ptr @llvm.stacksave()1560  %addr = alloca i8, i32 %n1561  call void @notdead(ptr %addr)1562  call void @llvm.stackrestore(ptr %sp)1563  ret void1564}1565 1566declare i32 @foo_test_irq(...)1567@var_test_irq = global [32 x i32] zeroinitializer1568 1569define void @foo_with_irq() "interrupt"="machine" {1570; RV32IXQCCMP-LABEL: foo_with_irq:1571; RV32IXQCCMP:       # %bb.0:1572; RV32IXQCCMP-NEXT:    qc.cm.push {ra}, -641573; RV32IXQCCMP-NEXT:    .cfi_def_cfa_offset 641574; RV32IXQCCMP-NEXT:    .cfi_offset ra, -41575; RV32IXQCCMP-NEXT:    addi sp, sp, -161576; RV32IXQCCMP-NEXT:    .cfi_def_cfa_offset 801577; RV32IXQCCMP-NEXT:    sw t0, 60(sp) # 4-byte Folded Spill1578; RV32IXQCCMP-NEXT:    sw t1, 56(sp) # 4-byte Folded Spill1579; RV32IXQCCMP-NEXT:    sw t2, 52(sp) # 4-byte Folded Spill1580; RV32IXQCCMP-NEXT:    sw a0, 48(sp) # 4-byte Folded Spill1581; RV32IXQCCMP-NEXT:    sw a1, 44(sp) # 4-byte Folded Spill1582; RV32IXQCCMP-NEXT:    sw a2, 40(sp) # 4-byte Folded Spill1583; RV32IXQCCMP-NEXT:    sw a3, 36(sp) # 4-byte Folded Spill1584; RV32IXQCCMP-NEXT:    sw a4, 32(sp) # 4-byte Folded Spill1585; RV32IXQCCMP-NEXT:    sw a5, 28(sp) # 4-byte Folded Spill1586; RV32IXQCCMP-NEXT:    sw a6, 24(sp) # 4-byte Folded Spill1587; RV32IXQCCMP-NEXT:    sw a7, 20(sp) # 4-byte Folded Spill1588; RV32IXQCCMP-NEXT:    sw t3, 16(sp) # 4-byte Folded Spill1589; RV32IXQCCMP-NEXT:    sw t4, 12(sp) # 4-byte Folded Spill1590; RV32IXQCCMP-NEXT:    sw t5, 8(sp) # 4-byte Folded Spill1591; RV32IXQCCMP-NEXT:    sw t6, 4(sp) # 4-byte Folded Spill1592; RV32IXQCCMP-NEXT:    .cfi_offset t0, -201593; RV32IXQCCMP-NEXT:    .cfi_offset t1, -241594; RV32IXQCCMP-NEXT:    .cfi_offset t2, -281595; RV32IXQCCMP-NEXT:    .cfi_offset a0, -321596; RV32IXQCCMP-NEXT:    .cfi_offset a1, -361597; RV32IXQCCMP-NEXT:    .cfi_offset a2, -401598; RV32IXQCCMP-NEXT:    .cfi_offset a3, -441599; RV32IXQCCMP-NEXT:    .cfi_offset a4, -481600; RV32IXQCCMP-NEXT:    .cfi_offset a5, -521601; RV32IXQCCMP-NEXT:    .cfi_offset a6, -561602; RV32IXQCCMP-NEXT:    .cfi_offset a7, -601603; RV32IXQCCMP-NEXT:    .cfi_offset t3, -641604; RV32IXQCCMP-NEXT:    .cfi_offset t4, -681605; RV32IXQCCMP-NEXT:    .cfi_offset t5, -721606; RV32IXQCCMP-NEXT:    .cfi_offset t6, -761607; RV32IXQCCMP-NEXT:    call foo_test_irq1608; RV32IXQCCMP-NEXT:    lw t0, 60(sp) # 4-byte Folded Reload1609; RV32IXQCCMP-NEXT:    lw t1, 56(sp) # 4-byte Folded Reload1610; RV32IXQCCMP-NEXT:    lw t2, 52(sp) # 4-byte Folded Reload1611; RV32IXQCCMP-NEXT:    lw a0, 48(sp) # 4-byte Folded Reload1612; RV32IXQCCMP-NEXT:    lw a1, 44(sp) # 4-byte Folded Reload1613; RV32IXQCCMP-NEXT:    lw a2, 40(sp) # 4-byte Folded Reload1614; RV32IXQCCMP-NEXT:    lw a3, 36(sp) # 4-byte Folded Reload1615; RV32IXQCCMP-NEXT:    lw a4, 32(sp) # 4-byte Folded Reload1616; RV32IXQCCMP-NEXT:    lw a5, 28(sp) # 4-byte Folded Reload1617; RV32IXQCCMP-NEXT:    lw a6, 24(sp) # 4-byte Folded Reload1618; RV32IXQCCMP-NEXT:    lw a7, 20(sp) # 4-byte Folded Reload1619; RV32IXQCCMP-NEXT:    lw t3, 16(sp) # 4-byte Folded Reload1620; RV32IXQCCMP-NEXT:    lw t4, 12(sp) # 4-byte Folded Reload1621; RV32IXQCCMP-NEXT:    lw t5, 8(sp) # 4-byte Folded Reload1622; RV32IXQCCMP-NEXT:    lw t6, 4(sp) # 4-byte Folded Reload1623; RV32IXQCCMP-NEXT:    .cfi_restore t01624; RV32IXQCCMP-NEXT:    .cfi_restore t11625; RV32IXQCCMP-NEXT:    .cfi_restore t21626; RV32IXQCCMP-NEXT:    .cfi_restore a01627; RV32IXQCCMP-NEXT:    .cfi_restore a11628; RV32IXQCCMP-NEXT:    .cfi_restore a21629; RV32IXQCCMP-NEXT:    .cfi_restore a31630; RV32IXQCCMP-NEXT:    .cfi_restore a41631; RV32IXQCCMP-NEXT:    .cfi_restore a51632; RV32IXQCCMP-NEXT:    .cfi_restore a61633; RV32IXQCCMP-NEXT:    .cfi_restore a71634; RV32IXQCCMP-NEXT:    .cfi_restore t31635; RV32IXQCCMP-NEXT:    .cfi_restore t41636; RV32IXQCCMP-NEXT:    .cfi_restore t51637; RV32IXQCCMP-NEXT:    .cfi_restore t61638; RV32IXQCCMP-NEXT:    addi sp, sp, 161639; RV32IXQCCMP-NEXT:    .cfi_def_cfa_offset 641640; RV32IXQCCMP-NEXT:    qc.cm.pop {ra}, 641641; RV32IXQCCMP-NEXT:    .cfi_restore ra1642; RV32IXQCCMP-NEXT:    .cfi_def_cfa_offset 01643; RV32IXQCCMP-NEXT:    mret1644;1645; RV64IXQCCMP-LABEL: foo_with_irq:1646; RV64IXQCCMP:       # %bb.0:1647; RV64IXQCCMP-NEXT:    qc.cm.push {ra}, -641648; RV64IXQCCMP-NEXT:    .cfi_def_cfa_offset 641649; RV64IXQCCMP-NEXT:    .cfi_offset ra, -81650; RV64IXQCCMP-NEXT:    addi sp, sp, -801651; RV64IXQCCMP-NEXT:    .cfi_def_cfa_offset 1441652; RV64IXQCCMP-NEXT:    sd t0, 120(sp) # 8-byte Folded Spill1653; RV64IXQCCMP-NEXT:    sd t1, 112(sp) # 8-byte Folded Spill1654; RV64IXQCCMP-NEXT:    sd t2, 104(sp) # 8-byte Folded Spill1655; RV64IXQCCMP-NEXT:    sd a0, 96(sp) # 8-byte Folded Spill1656; RV64IXQCCMP-NEXT:    sd a1, 88(sp) # 8-byte Folded Spill1657; RV64IXQCCMP-NEXT:    sd a2, 80(sp) # 8-byte Folded Spill1658; RV64IXQCCMP-NEXT:    sd a3, 72(sp) # 8-byte Folded Spill1659; RV64IXQCCMP-NEXT:    sd a4, 64(sp) # 8-byte Folded Spill1660; RV64IXQCCMP-NEXT:    sd a5, 56(sp) # 8-byte Folded Spill1661; RV64IXQCCMP-NEXT:    sd a6, 48(sp) # 8-byte Folded Spill1662; RV64IXQCCMP-NEXT:    sd a7, 40(sp) # 8-byte Folded Spill1663; RV64IXQCCMP-NEXT:    sd t3, 32(sp) # 8-byte Folded Spill1664; RV64IXQCCMP-NEXT:    sd t4, 24(sp) # 8-byte Folded Spill1665; RV64IXQCCMP-NEXT:    sd t5, 16(sp) # 8-byte Folded Spill1666; RV64IXQCCMP-NEXT:    sd t6, 8(sp) # 8-byte Folded Spill1667; RV64IXQCCMP-NEXT:    .cfi_offset t0, -241668; RV64IXQCCMP-NEXT:    .cfi_offset t1, -321669; RV64IXQCCMP-NEXT:    .cfi_offset t2, -401670; RV64IXQCCMP-NEXT:    .cfi_offset a0, -481671; RV64IXQCCMP-NEXT:    .cfi_offset a1, -561672; RV64IXQCCMP-NEXT:    .cfi_offset a2, -641673; RV64IXQCCMP-NEXT:    .cfi_offset a3, -721674; RV64IXQCCMP-NEXT:    .cfi_offset a4, -801675; RV64IXQCCMP-NEXT:    .cfi_offset a5, -881676; RV64IXQCCMP-NEXT:    .cfi_offset a6, -961677; RV64IXQCCMP-NEXT:    .cfi_offset a7, -1041678; RV64IXQCCMP-NEXT:    .cfi_offset t3, -1121679; RV64IXQCCMP-NEXT:    .cfi_offset t4, -1201680; RV64IXQCCMP-NEXT:    .cfi_offset t5, -1281681; RV64IXQCCMP-NEXT:    .cfi_offset t6, -1361682; RV64IXQCCMP-NEXT:    call foo_test_irq1683; RV64IXQCCMP-NEXT:    ld t0, 120(sp) # 8-byte Folded Reload1684; RV64IXQCCMP-NEXT:    ld t1, 112(sp) # 8-byte Folded Reload1685; RV64IXQCCMP-NEXT:    ld t2, 104(sp) # 8-byte Folded Reload1686; RV64IXQCCMP-NEXT:    ld a0, 96(sp) # 8-byte Folded Reload1687; RV64IXQCCMP-NEXT:    ld a1, 88(sp) # 8-byte Folded Reload1688; RV64IXQCCMP-NEXT:    ld a2, 80(sp) # 8-byte Folded Reload1689; RV64IXQCCMP-NEXT:    ld a3, 72(sp) # 8-byte Folded Reload1690; RV64IXQCCMP-NEXT:    ld a4, 64(sp) # 8-byte Folded Reload1691; RV64IXQCCMP-NEXT:    ld a5, 56(sp) # 8-byte Folded Reload1692; RV64IXQCCMP-NEXT:    ld a6, 48(sp) # 8-byte Folded Reload1693; RV64IXQCCMP-NEXT:    ld a7, 40(sp) # 8-byte Folded Reload1694; RV64IXQCCMP-NEXT:    ld t3, 32(sp) # 8-byte Folded Reload1695; RV64IXQCCMP-NEXT:    ld t4, 24(sp) # 8-byte Folded Reload1696; RV64IXQCCMP-NEXT:    ld t5, 16(sp) # 8-byte Folded Reload1697; RV64IXQCCMP-NEXT:    ld t6, 8(sp) # 8-byte Folded Reload1698; RV64IXQCCMP-NEXT:    .cfi_restore t01699; RV64IXQCCMP-NEXT:    .cfi_restore t11700; RV64IXQCCMP-NEXT:    .cfi_restore t21701; RV64IXQCCMP-NEXT:    .cfi_restore a01702; RV64IXQCCMP-NEXT:    .cfi_restore a11703; RV64IXQCCMP-NEXT:    .cfi_restore a21704; RV64IXQCCMP-NEXT:    .cfi_restore a31705; RV64IXQCCMP-NEXT:    .cfi_restore a41706; RV64IXQCCMP-NEXT:    .cfi_restore a51707; RV64IXQCCMP-NEXT:    .cfi_restore a61708; RV64IXQCCMP-NEXT:    .cfi_restore a71709; RV64IXQCCMP-NEXT:    .cfi_restore t31710; RV64IXQCCMP-NEXT:    .cfi_restore t41711; RV64IXQCCMP-NEXT:    .cfi_restore t51712; RV64IXQCCMP-NEXT:    .cfi_restore t61713; RV64IXQCCMP-NEXT:    addi sp, sp, 801714; RV64IXQCCMP-NEXT:    .cfi_def_cfa_offset 641715; RV64IXQCCMP-NEXT:    qc.cm.pop {ra}, 641716; RV64IXQCCMP-NEXT:    .cfi_restore ra1717; RV64IXQCCMP-NEXT:    .cfi_def_cfa_offset 01718; RV64IXQCCMP-NEXT:    mret1719;1720; RV32IXQCCMP-FP-LABEL: foo_with_irq:1721; RV32IXQCCMP-FP:       # %bb.0:1722; RV32IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0}, -641723; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 641724; RV32IXQCCMP-FP-NEXT:    .cfi_offset ra, -41725; RV32IXQCCMP-FP-NEXT:    .cfi_offset s0, -81726; RV32IXQCCMP-FP-NEXT:    addi sp, sp, -161727; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 801728; RV32IXQCCMP-FP-NEXT:    sw t0, 60(sp) # 4-byte Folded Spill1729; RV32IXQCCMP-FP-NEXT:    sw t1, 56(sp) # 4-byte Folded Spill1730; RV32IXQCCMP-FP-NEXT:    sw t2, 52(sp) # 4-byte Folded Spill1731; RV32IXQCCMP-FP-NEXT:    sw a0, 48(sp) # 4-byte Folded Spill1732; RV32IXQCCMP-FP-NEXT:    sw a1, 44(sp) # 4-byte Folded Spill1733; RV32IXQCCMP-FP-NEXT:    sw a2, 40(sp) # 4-byte Folded Spill1734; RV32IXQCCMP-FP-NEXT:    sw a3, 36(sp) # 4-byte Folded Spill1735; RV32IXQCCMP-FP-NEXT:    sw a4, 32(sp) # 4-byte Folded Spill1736; RV32IXQCCMP-FP-NEXT:    sw a5, 28(sp) # 4-byte Folded Spill1737; RV32IXQCCMP-FP-NEXT:    sw a6, 24(sp) # 4-byte Folded Spill1738; RV32IXQCCMP-FP-NEXT:    sw a7, 20(sp) # 4-byte Folded Spill1739; RV32IXQCCMP-FP-NEXT:    sw t3, 16(sp) # 4-byte Folded Spill1740; RV32IXQCCMP-FP-NEXT:    sw t4, 12(sp) # 4-byte Folded Spill1741; RV32IXQCCMP-FP-NEXT:    sw t5, 8(sp) # 4-byte Folded Spill1742; RV32IXQCCMP-FP-NEXT:    sw t6, 4(sp) # 4-byte Folded Spill1743; RV32IXQCCMP-FP-NEXT:    .cfi_offset t0, -201744; RV32IXQCCMP-FP-NEXT:    .cfi_offset t1, -241745; RV32IXQCCMP-FP-NEXT:    .cfi_offset t2, -281746; RV32IXQCCMP-FP-NEXT:    .cfi_offset a0, -321747; RV32IXQCCMP-FP-NEXT:    .cfi_offset a1, -361748; RV32IXQCCMP-FP-NEXT:    .cfi_offset a2, -401749; RV32IXQCCMP-FP-NEXT:    .cfi_offset a3, -441750; RV32IXQCCMP-FP-NEXT:    .cfi_offset a4, -481751; RV32IXQCCMP-FP-NEXT:    .cfi_offset a5, -521752; RV32IXQCCMP-FP-NEXT:    .cfi_offset a6, -561753; RV32IXQCCMP-FP-NEXT:    .cfi_offset a7, -601754; RV32IXQCCMP-FP-NEXT:    .cfi_offset t3, -641755; RV32IXQCCMP-FP-NEXT:    .cfi_offset t4, -681756; RV32IXQCCMP-FP-NEXT:    .cfi_offset t5, -721757; RV32IXQCCMP-FP-NEXT:    .cfi_offset t6, -761758; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 01759; RV32IXQCCMP-FP-NEXT:    call foo_test_irq1760; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 801761; RV32IXQCCMP-FP-NEXT:    lw t0, 60(sp) # 4-byte Folded Reload1762; RV32IXQCCMP-FP-NEXT:    lw t1, 56(sp) # 4-byte Folded Reload1763; RV32IXQCCMP-FP-NEXT:    lw t2, 52(sp) # 4-byte Folded Reload1764; RV32IXQCCMP-FP-NEXT:    lw a0, 48(sp) # 4-byte Folded Reload1765; RV32IXQCCMP-FP-NEXT:    lw a1, 44(sp) # 4-byte Folded Reload1766; RV32IXQCCMP-FP-NEXT:    lw a2, 40(sp) # 4-byte Folded Reload1767; RV32IXQCCMP-FP-NEXT:    lw a3, 36(sp) # 4-byte Folded Reload1768; RV32IXQCCMP-FP-NEXT:    lw a4, 32(sp) # 4-byte Folded Reload1769; RV32IXQCCMP-FP-NEXT:    lw a5, 28(sp) # 4-byte Folded Reload1770; RV32IXQCCMP-FP-NEXT:    lw a6, 24(sp) # 4-byte Folded Reload1771; RV32IXQCCMP-FP-NEXT:    lw a7, 20(sp) # 4-byte Folded Reload1772; RV32IXQCCMP-FP-NEXT:    lw t3, 16(sp) # 4-byte Folded Reload1773; RV32IXQCCMP-FP-NEXT:    lw t4, 12(sp) # 4-byte Folded Reload1774; RV32IXQCCMP-FP-NEXT:    lw t5, 8(sp) # 4-byte Folded Reload1775; RV32IXQCCMP-FP-NEXT:    lw t6, 4(sp) # 4-byte Folded Reload1776; RV32IXQCCMP-FP-NEXT:    .cfi_restore t01777; RV32IXQCCMP-FP-NEXT:    .cfi_restore t11778; RV32IXQCCMP-FP-NEXT:    .cfi_restore t21779; RV32IXQCCMP-FP-NEXT:    .cfi_restore a01780; RV32IXQCCMP-FP-NEXT:    .cfi_restore a11781; RV32IXQCCMP-FP-NEXT:    .cfi_restore a21782; RV32IXQCCMP-FP-NEXT:    .cfi_restore a31783; RV32IXQCCMP-FP-NEXT:    .cfi_restore a41784; RV32IXQCCMP-FP-NEXT:    .cfi_restore a51785; RV32IXQCCMP-FP-NEXT:    .cfi_restore a61786; RV32IXQCCMP-FP-NEXT:    .cfi_restore a71787; RV32IXQCCMP-FP-NEXT:    .cfi_restore t31788; RV32IXQCCMP-FP-NEXT:    .cfi_restore t41789; RV32IXQCCMP-FP-NEXT:    .cfi_restore t51790; RV32IXQCCMP-FP-NEXT:    .cfi_restore t61791; RV32IXQCCMP-FP-NEXT:    addi sp, sp, 161792; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 641793; RV32IXQCCMP-FP-NEXT:    qc.cm.pop {ra, s0}, 641794; RV32IXQCCMP-FP-NEXT:    .cfi_restore ra1795; RV32IXQCCMP-FP-NEXT:    .cfi_restore s01796; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 01797; RV32IXQCCMP-FP-NEXT:    mret1798;1799; RV64IXQCCMP-FP-LABEL: foo_with_irq:1800; RV64IXQCCMP-FP:       # %bb.0:1801; RV64IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0}, -641802; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 641803; RV64IXQCCMP-FP-NEXT:    .cfi_offset ra, -81804; RV64IXQCCMP-FP-NEXT:    .cfi_offset s0, -161805; RV64IXQCCMP-FP-NEXT:    addi sp, sp, -801806; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 1441807; RV64IXQCCMP-FP-NEXT:    sd t0, 120(sp) # 8-byte Folded Spill1808; RV64IXQCCMP-FP-NEXT:    sd t1, 112(sp) # 8-byte Folded Spill1809; RV64IXQCCMP-FP-NEXT:    sd t2, 104(sp) # 8-byte Folded Spill1810; RV64IXQCCMP-FP-NEXT:    sd a0, 96(sp) # 8-byte Folded Spill1811; RV64IXQCCMP-FP-NEXT:    sd a1, 88(sp) # 8-byte Folded Spill1812; RV64IXQCCMP-FP-NEXT:    sd a2, 80(sp) # 8-byte Folded Spill1813; RV64IXQCCMP-FP-NEXT:    sd a3, 72(sp) # 8-byte Folded Spill1814; RV64IXQCCMP-FP-NEXT:    sd a4, 64(sp) # 8-byte Folded Spill1815; RV64IXQCCMP-FP-NEXT:    sd a5, 56(sp) # 8-byte Folded Spill1816; RV64IXQCCMP-FP-NEXT:    sd a6, 48(sp) # 8-byte Folded Spill1817; RV64IXQCCMP-FP-NEXT:    sd a7, 40(sp) # 8-byte Folded Spill1818; RV64IXQCCMP-FP-NEXT:    sd t3, 32(sp) # 8-byte Folded Spill1819; RV64IXQCCMP-FP-NEXT:    sd t4, 24(sp) # 8-byte Folded Spill1820; RV64IXQCCMP-FP-NEXT:    sd t5, 16(sp) # 8-byte Folded Spill1821; RV64IXQCCMP-FP-NEXT:    sd t6, 8(sp) # 8-byte Folded Spill1822; RV64IXQCCMP-FP-NEXT:    .cfi_offset t0, -241823; RV64IXQCCMP-FP-NEXT:    .cfi_offset t1, -321824; RV64IXQCCMP-FP-NEXT:    .cfi_offset t2, -401825; RV64IXQCCMP-FP-NEXT:    .cfi_offset a0, -481826; RV64IXQCCMP-FP-NEXT:    .cfi_offset a1, -561827; RV64IXQCCMP-FP-NEXT:    .cfi_offset a2, -641828; RV64IXQCCMP-FP-NEXT:    .cfi_offset a3, -721829; RV64IXQCCMP-FP-NEXT:    .cfi_offset a4, -801830; RV64IXQCCMP-FP-NEXT:    .cfi_offset a5, -881831; RV64IXQCCMP-FP-NEXT:    .cfi_offset a6, -961832; RV64IXQCCMP-FP-NEXT:    .cfi_offset a7, -1041833; RV64IXQCCMP-FP-NEXT:    .cfi_offset t3, -1121834; RV64IXQCCMP-FP-NEXT:    .cfi_offset t4, -1201835; RV64IXQCCMP-FP-NEXT:    .cfi_offset t5, -1281836; RV64IXQCCMP-FP-NEXT:    .cfi_offset t6, -1361837; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 01838; RV64IXQCCMP-FP-NEXT:    call foo_test_irq1839; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 1441840; RV64IXQCCMP-FP-NEXT:    ld t0, 120(sp) # 8-byte Folded Reload1841; RV64IXQCCMP-FP-NEXT:    ld t1, 112(sp) # 8-byte Folded Reload1842; RV64IXQCCMP-FP-NEXT:    ld t2, 104(sp) # 8-byte Folded Reload1843; RV64IXQCCMP-FP-NEXT:    ld a0, 96(sp) # 8-byte Folded Reload1844; RV64IXQCCMP-FP-NEXT:    ld a1, 88(sp) # 8-byte Folded Reload1845; RV64IXQCCMP-FP-NEXT:    ld a2, 80(sp) # 8-byte Folded Reload1846; RV64IXQCCMP-FP-NEXT:    ld a3, 72(sp) # 8-byte Folded Reload1847; RV64IXQCCMP-FP-NEXT:    ld a4, 64(sp) # 8-byte Folded Reload1848; RV64IXQCCMP-FP-NEXT:    ld a5, 56(sp) # 8-byte Folded Reload1849; RV64IXQCCMP-FP-NEXT:    ld a6, 48(sp) # 8-byte Folded Reload1850; RV64IXQCCMP-FP-NEXT:    ld a7, 40(sp) # 8-byte Folded Reload1851; RV64IXQCCMP-FP-NEXT:    ld t3, 32(sp) # 8-byte Folded Reload1852; RV64IXQCCMP-FP-NEXT:    ld t4, 24(sp) # 8-byte Folded Reload1853; RV64IXQCCMP-FP-NEXT:    ld t5, 16(sp) # 8-byte Folded Reload1854; RV64IXQCCMP-FP-NEXT:    ld t6, 8(sp) # 8-byte Folded Reload1855; RV64IXQCCMP-FP-NEXT:    .cfi_restore t01856; RV64IXQCCMP-FP-NEXT:    .cfi_restore t11857; RV64IXQCCMP-FP-NEXT:    .cfi_restore t21858; RV64IXQCCMP-FP-NEXT:    .cfi_restore a01859; RV64IXQCCMP-FP-NEXT:    .cfi_restore a11860; RV64IXQCCMP-FP-NEXT:    .cfi_restore a21861; RV64IXQCCMP-FP-NEXT:    .cfi_restore a31862; RV64IXQCCMP-FP-NEXT:    .cfi_restore a41863; RV64IXQCCMP-FP-NEXT:    .cfi_restore a51864; RV64IXQCCMP-FP-NEXT:    .cfi_restore a61865; RV64IXQCCMP-FP-NEXT:    .cfi_restore a71866; RV64IXQCCMP-FP-NEXT:    .cfi_restore t31867; RV64IXQCCMP-FP-NEXT:    .cfi_restore t41868; RV64IXQCCMP-FP-NEXT:    .cfi_restore t51869; RV64IXQCCMP-FP-NEXT:    .cfi_restore t61870; RV64IXQCCMP-FP-NEXT:    addi sp, sp, 801871; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 641872; RV64IXQCCMP-FP-NEXT:    qc.cm.pop {ra, s0}, 641873; RV64IXQCCMP-FP-NEXT:    .cfi_restore ra1874; RV64IXQCCMP-FP-NEXT:    .cfi_restore s01875; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 01876; RV64IXQCCMP-FP-NEXT:    mret1877;1878; RV32IXQCCMP-SR-LABEL: foo_with_irq:1879; RV32IXQCCMP-SR:       # %bb.0:1880; RV32IXQCCMP-SR-NEXT:    qc.cm.push {ra}, -641881; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 641882; RV32IXQCCMP-SR-NEXT:    .cfi_offset ra, -41883; RV32IXQCCMP-SR-NEXT:    addi sp, sp, -161884; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 801885; RV32IXQCCMP-SR-NEXT:    sw t0, 60(sp) # 4-byte Folded Spill1886; RV32IXQCCMP-SR-NEXT:    sw t1, 56(sp) # 4-byte Folded Spill1887; RV32IXQCCMP-SR-NEXT:    sw t2, 52(sp) # 4-byte Folded Spill1888; RV32IXQCCMP-SR-NEXT:    sw a0, 48(sp) # 4-byte Folded Spill1889; RV32IXQCCMP-SR-NEXT:    sw a1, 44(sp) # 4-byte Folded Spill1890; RV32IXQCCMP-SR-NEXT:    sw a2, 40(sp) # 4-byte Folded Spill1891; RV32IXQCCMP-SR-NEXT:    sw a3, 36(sp) # 4-byte Folded Spill1892; RV32IXQCCMP-SR-NEXT:    sw a4, 32(sp) # 4-byte Folded Spill1893; RV32IXQCCMP-SR-NEXT:    sw a5, 28(sp) # 4-byte Folded Spill1894; RV32IXQCCMP-SR-NEXT:    sw a6, 24(sp) # 4-byte Folded Spill1895; RV32IXQCCMP-SR-NEXT:    sw a7, 20(sp) # 4-byte Folded Spill1896; RV32IXQCCMP-SR-NEXT:    sw t3, 16(sp) # 4-byte Folded Spill1897; RV32IXQCCMP-SR-NEXT:    sw t4, 12(sp) # 4-byte Folded Spill1898; RV32IXQCCMP-SR-NEXT:    sw t5, 8(sp) # 4-byte Folded Spill1899; RV32IXQCCMP-SR-NEXT:    sw t6, 4(sp) # 4-byte Folded Spill1900; RV32IXQCCMP-SR-NEXT:    .cfi_offset t0, -201901; RV32IXQCCMP-SR-NEXT:    .cfi_offset t1, -241902; RV32IXQCCMP-SR-NEXT:    .cfi_offset t2, -281903; RV32IXQCCMP-SR-NEXT:    .cfi_offset a0, -321904; RV32IXQCCMP-SR-NEXT:    .cfi_offset a1, -361905; RV32IXQCCMP-SR-NEXT:    .cfi_offset a2, -401906; RV32IXQCCMP-SR-NEXT:    .cfi_offset a3, -441907; RV32IXQCCMP-SR-NEXT:    .cfi_offset a4, -481908; RV32IXQCCMP-SR-NEXT:    .cfi_offset a5, -521909; RV32IXQCCMP-SR-NEXT:    .cfi_offset a6, -561910; RV32IXQCCMP-SR-NEXT:    .cfi_offset a7, -601911; RV32IXQCCMP-SR-NEXT:    .cfi_offset t3, -641912; RV32IXQCCMP-SR-NEXT:    .cfi_offset t4, -681913; RV32IXQCCMP-SR-NEXT:    .cfi_offset t5, -721914; RV32IXQCCMP-SR-NEXT:    .cfi_offset t6, -761915; RV32IXQCCMP-SR-NEXT:    call foo_test_irq1916; RV32IXQCCMP-SR-NEXT:    lw t0, 60(sp) # 4-byte Folded Reload1917; RV32IXQCCMP-SR-NEXT:    lw t1, 56(sp) # 4-byte Folded Reload1918; RV32IXQCCMP-SR-NEXT:    lw t2, 52(sp) # 4-byte Folded Reload1919; RV32IXQCCMP-SR-NEXT:    lw a0, 48(sp) # 4-byte Folded Reload1920; RV32IXQCCMP-SR-NEXT:    lw a1, 44(sp) # 4-byte Folded Reload1921; RV32IXQCCMP-SR-NEXT:    lw a2, 40(sp) # 4-byte Folded Reload1922; RV32IXQCCMP-SR-NEXT:    lw a3, 36(sp) # 4-byte Folded Reload1923; RV32IXQCCMP-SR-NEXT:    lw a4, 32(sp) # 4-byte Folded Reload1924; RV32IXQCCMP-SR-NEXT:    lw a5, 28(sp) # 4-byte Folded Reload1925; RV32IXQCCMP-SR-NEXT:    lw a6, 24(sp) # 4-byte Folded Reload1926; RV32IXQCCMP-SR-NEXT:    lw a7, 20(sp) # 4-byte Folded Reload1927; RV32IXQCCMP-SR-NEXT:    lw t3, 16(sp) # 4-byte Folded Reload1928; RV32IXQCCMP-SR-NEXT:    lw t4, 12(sp) # 4-byte Folded Reload1929; RV32IXQCCMP-SR-NEXT:    lw t5, 8(sp) # 4-byte Folded Reload1930; RV32IXQCCMP-SR-NEXT:    lw t6, 4(sp) # 4-byte Folded Reload1931; RV32IXQCCMP-SR-NEXT:    .cfi_restore t01932; RV32IXQCCMP-SR-NEXT:    .cfi_restore t11933; RV32IXQCCMP-SR-NEXT:    .cfi_restore t21934; RV32IXQCCMP-SR-NEXT:    .cfi_restore a01935; RV32IXQCCMP-SR-NEXT:    .cfi_restore a11936; RV32IXQCCMP-SR-NEXT:    .cfi_restore a21937; RV32IXQCCMP-SR-NEXT:    .cfi_restore a31938; RV32IXQCCMP-SR-NEXT:    .cfi_restore a41939; RV32IXQCCMP-SR-NEXT:    .cfi_restore a51940; RV32IXQCCMP-SR-NEXT:    .cfi_restore a61941; RV32IXQCCMP-SR-NEXT:    .cfi_restore a71942; RV32IXQCCMP-SR-NEXT:    .cfi_restore t31943; RV32IXQCCMP-SR-NEXT:    .cfi_restore t41944; RV32IXQCCMP-SR-NEXT:    .cfi_restore t51945; RV32IXQCCMP-SR-NEXT:    .cfi_restore t61946; RV32IXQCCMP-SR-NEXT:    addi sp, sp, 161947; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 641948; RV32IXQCCMP-SR-NEXT:    qc.cm.pop {ra}, 641949; RV32IXQCCMP-SR-NEXT:    .cfi_restore ra1950; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 01951; RV32IXQCCMP-SR-NEXT:    mret1952;1953; RV64IXQCCMP-SR-LABEL: foo_with_irq:1954; RV64IXQCCMP-SR:       # %bb.0:1955; RV64IXQCCMP-SR-NEXT:    qc.cm.push {ra}, -641956; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 641957; RV64IXQCCMP-SR-NEXT:    .cfi_offset ra, -81958; RV64IXQCCMP-SR-NEXT:    addi sp, sp, -801959; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 1441960; RV64IXQCCMP-SR-NEXT:    sd t0, 120(sp) # 8-byte Folded Spill1961; RV64IXQCCMP-SR-NEXT:    sd t1, 112(sp) # 8-byte Folded Spill1962; RV64IXQCCMP-SR-NEXT:    sd t2, 104(sp) # 8-byte Folded Spill1963; RV64IXQCCMP-SR-NEXT:    sd a0, 96(sp) # 8-byte Folded Spill1964; RV64IXQCCMP-SR-NEXT:    sd a1, 88(sp) # 8-byte Folded Spill1965; RV64IXQCCMP-SR-NEXT:    sd a2, 80(sp) # 8-byte Folded Spill1966; RV64IXQCCMP-SR-NEXT:    sd a3, 72(sp) # 8-byte Folded Spill1967; RV64IXQCCMP-SR-NEXT:    sd a4, 64(sp) # 8-byte Folded Spill1968; RV64IXQCCMP-SR-NEXT:    sd a5, 56(sp) # 8-byte Folded Spill1969; RV64IXQCCMP-SR-NEXT:    sd a6, 48(sp) # 8-byte Folded Spill1970; RV64IXQCCMP-SR-NEXT:    sd a7, 40(sp) # 8-byte Folded Spill1971; RV64IXQCCMP-SR-NEXT:    sd t3, 32(sp) # 8-byte Folded Spill1972; RV64IXQCCMP-SR-NEXT:    sd t4, 24(sp) # 8-byte Folded Spill1973; RV64IXQCCMP-SR-NEXT:    sd t5, 16(sp) # 8-byte Folded Spill1974; RV64IXQCCMP-SR-NEXT:    sd t6, 8(sp) # 8-byte Folded Spill1975; RV64IXQCCMP-SR-NEXT:    .cfi_offset t0, -241976; RV64IXQCCMP-SR-NEXT:    .cfi_offset t1, -321977; RV64IXQCCMP-SR-NEXT:    .cfi_offset t2, -401978; RV64IXQCCMP-SR-NEXT:    .cfi_offset a0, -481979; RV64IXQCCMP-SR-NEXT:    .cfi_offset a1, -561980; RV64IXQCCMP-SR-NEXT:    .cfi_offset a2, -641981; RV64IXQCCMP-SR-NEXT:    .cfi_offset a3, -721982; RV64IXQCCMP-SR-NEXT:    .cfi_offset a4, -801983; RV64IXQCCMP-SR-NEXT:    .cfi_offset a5, -881984; RV64IXQCCMP-SR-NEXT:    .cfi_offset a6, -961985; RV64IXQCCMP-SR-NEXT:    .cfi_offset a7, -1041986; RV64IXQCCMP-SR-NEXT:    .cfi_offset t3, -1121987; RV64IXQCCMP-SR-NEXT:    .cfi_offset t4, -1201988; RV64IXQCCMP-SR-NEXT:    .cfi_offset t5, -1281989; RV64IXQCCMP-SR-NEXT:    .cfi_offset t6, -1361990; RV64IXQCCMP-SR-NEXT:    call foo_test_irq1991; RV64IXQCCMP-SR-NEXT:    ld t0, 120(sp) # 8-byte Folded Reload1992; RV64IXQCCMP-SR-NEXT:    ld t1, 112(sp) # 8-byte Folded Reload1993; RV64IXQCCMP-SR-NEXT:    ld t2, 104(sp) # 8-byte Folded Reload1994; RV64IXQCCMP-SR-NEXT:    ld a0, 96(sp) # 8-byte Folded Reload1995; RV64IXQCCMP-SR-NEXT:    ld a1, 88(sp) # 8-byte Folded Reload1996; RV64IXQCCMP-SR-NEXT:    ld a2, 80(sp) # 8-byte Folded Reload1997; RV64IXQCCMP-SR-NEXT:    ld a3, 72(sp) # 8-byte Folded Reload1998; RV64IXQCCMP-SR-NEXT:    ld a4, 64(sp) # 8-byte Folded Reload1999; RV64IXQCCMP-SR-NEXT:    ld a5, 56(sp) # 8-byte Folded Reload2000; RV64IXQCCMP-SR-NEXT:    ld a6, 48(sp) # 8-byte Folded Reload2001; RV64IXQCCMP-SR-NEXT:    ld a7, 40(sp) # 8-byte Folded Reload2002; RV64IXQCCMP-SR-NEXT:    ld t3, 32(sp) # 8-byte Folded Reload2003; RV64IXQCCMP-SR-NEXT:    ld t4, 24(sp) # 8-byte Folded Reload2004; RV64IXQCCMP-SR-NEXT:    ld t5, 16(sp) # 8-byte Folded Reload2005; RV64IXQCCMP-SR-NEXT:    ld t6, 8(sp) # 8-byte Folded Reload2006; RV64IXQCCMP-SR-NEXT:    .cfi_restore t02007; RV64IXQCCMP-SR-NEXT:    .cfi_restore t12008; RV64IXQCCMP-SR-NEXT:    .cfi_restore t22009; RV64IXQCCMP-SR-NEXT:    .cfi_restore a02010; RV64IXQCCMP-SR-NEXT:    .cfi_restore a12011; RV64IXQCCMP-SR-NEXT:    .cfi_restore a22012; RV64IXQCCMP-SR-NEXT:    .cfi_restore a32013; RV64IXQCCMP-SR-NEXT:    .cfi_restore a42014; RV64IXQCCMP-SR-NEXT:    .cfi_restore a52015; RV64IXQCCMP-SR-NEXT:    .cfi_restore a62016; RV64IXQCCMP-SR-NEXT:    .cfi_restore a72017; RV64IXQCCMP-SR-NEXT:    .cfi_restore t32018; RV64IXQCCMP-SR-NEXT:    .cfi_restore t42019; RV64IXQCCMP-SR-NEXT:    .cfi_restore t52020; RV64IXQCCMP-SR-NEXT:    .cfi_restore t62021; RV64IXQCCMP-SR-NEXT:    addi sp, sp, 802022; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 642023; RV64IXQCCMP-SR-NEXT:    qc.cm.pop {ra}, 642024; RV64IXQCCMP-SR-NEXT:    .cfi_restore ra2025; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 02026; RV64IXQCCMP-SR-NEXT:    mret2027  %call = call i32 @foo_test_irq()2028  ret void2029}2030 2031define void @foo_no_irq() {2032; RV32IXQCCMP-LABEL: foo_no_irq:2033; RV32IXQCCMP:       # %bb.0:2034; RV32IXQCCMP-NEXT:    qc.cm.push {ra}, -162035; RV32IXQCCMP-NEXT:    .cfi_def_cfa_offset 162036; RV32IXQCCMP-NEXT:    .cfi_offset ra, -42037; RV32IXQCCMP-NEXT:    call foo_test_irq2038; RV32IXQCCMP-NEXT:    qc.cm.popret {ra}, 162039;2040; RV64IXQCCMP-LABEL: foo_no_irq:2041; RV64IXQCCMP:       # %bb.0:2042; RV64IXQCCMP-NEXT:    qc.cm.push {ra}, -162043; RV64IXQCCMP-NEXT:    .cfi_def_cfa_offset 162044; RV64IXQCCMP-NEXT:    .cfi_offset ra, -82045; RV64IXQCCMP-NEXT:    call foo_test_irq2046; RV64IXQCCMP-NEXT:    qc.cm.popret {ra}, 162047;2048; RV32IXQCCMP-FP-LABEL: foo_no_irq:2049; RV32IXQCCMP-FP:       # %bb.0:2050; RV32IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0}, -162051; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 162052; RV32IXQCCMP-FP-NEXT:    .cfi_offset ra, -42053; RV32IXQCCMP-FP-NEXT:    .cfi_offset s0, -82054; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 02055; RV32IXQCCMP-FP-NEXT:    call foo_test_irq2056; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 162057; RV32IXQCCMP-FP-NEXT:    qc.cm.popret {ra, s0}, 162058;2059; RV64IXQCCMP-FP-LABEL: foo_no_irq:2060; RV64IXQCCMP-FP:       # %bb.0:2061; RV64IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0}, -162062; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 162063; RV64IXQCCMP-FP-NEXT:    .cfi_offset ra, -82064; RV64IXQCCMP-FP-NEXT:    .cfi_offset s0, -162065; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 02066; RV64IXQCCMP-FP-NEXT:    call foo_test_irq2067; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 162068; RV64IXQCCMP-FP-NEXT:    qc.cm.popret {ra, s0}, 162069;2070; RV32IXQCCMP-SR-LABEL: foo_no_irq:2071; RV32IXQCCMP-SR:       # %bb.0:2072; RV32IXQCCMP-SR-NEXT:    qc.cm.push {ra}, -162073; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 162074; RV32IXQCCMP-SR-NEXT:    .cfi_offset ra, -42075; RV32IXQCCMP-SR-NEXT:    call foo_test_irq2076; RV32IXQCCMP-SR-NEXT:    qc.cm.popret {ra}, 162077;2078; RV64IXQCCMP-SR-LABEL: foo_no_irq:2079; RV64IXQCCMP-SR:       # %bb.0:2080; RV64IXQCCMP-SR-NEXT:    qc.cm.push {ra}, -162081; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 162082; RV64IXQCCMP-SR-NEXT:    .cfi_offset ra, -82083; RV64IXQCCMP-SR-NEXT:    call foo_test_irq2084; RV64IXQCCMP-SR-NEXT:    qc.cm.popret {ra}, 162085  %call = call i32 @foo_test_irq()2086  ret void2087}2088 2089define void @callee_with_irq() "interrupt"="machine" {2090; RV32IXQCCMP-LABEL: callee_with_irq:2091; RV32IXQCCMP:       # %bb.0:2092; RV32IXQCCMP-NEXT:    qc.cm.push {ra, s0-s11}, -1122093; RV32IXQCCMP-NEXT:    .cfi_def_cfa_offset 1122094; RV32IXQCCMP-NEXT:    .cfi_offset ra, -42095; RV32IXQCCMP-NEXT:    .cfi_offset s0, -82096; RV32IXQCCMP-NEXT:    .cfi_offset s1, -122097; RV32IXQCCMP-NEXT:    .cfi_offset s2, -162098; RV32IXQCCMP-NEXT:    .cfi_offset s3, -202099; RV32IXQCCMP-NEXT:    .cfi_offset s4, -242100; RV32IXQCCMP-NEXT:    .cfi_offset s5, -282101; RV32IXQCCMP-NEXT:    .cfi_offset s6, -322102; RV32IXQCCMP-NEXT:    .cfi_offset s7, -362103; RV32IXQCCMP-NEXT:    .cfi_offset s8, -402104; RV32IXQCCMP-NEXT:    .cfi_offset s9, -442105; RV32IXQCCMP-NEXT:    .cfi_offset s10, -482106; RV32IXQCCMP-NEXT:    .cfi_offset s11, -522107; RV32IXQCCMP-NEXT:    addi sp, sp, -322108; RV32IXQCCMP-NEXT:    .cfi_def_cfa_offset 1442109; RV32IXQCCMP-NEXT:    sw t0, 76(sp) # 4-byte Folded Spill2110; RV32IXQCCMP-NEXT:    sw t1, 72(sp) # 4-byte Folded Spill2111; RV32IXQCCMP-NEXT:    sw t2, 68(sp) # 4-byte Folded Spill2112; RV32IXQCCMP-NEXT:    sw a0, 64(sp) # 4-byte Folded Spill2113; RV32IXQCCMP-NEXT:    sw a1, 60(sp) # 4-byte Folded Spill2114; RV32IXQCCMP-NEXT:    sw a2, 56(sp) # 4-byte Folded Spill2115; RV32IXQCCMP-NEXT:    sw a3, 52(sp) # 4-byte Folded Spill2116; RV32IXQCCMP-NEXT:    sw a4, 48(sp) # 4-byte Folded Spill2117; RV32IXQCCMP-NEXT:    sw a5, 44(sp) # 4-byte Folded Spill2118; RV32IXQCCMP-NEXT:    sw a6, 40(sp) # 4-byte Folded Spill2119; RV32IXQCCMP-NEXT:    sw a7, 36(sp) # 4-byte Folded Spill2120; RV32IXQCCMP-NEXT:    sw t3, 32(sp) # 4-byte Folded Spill2121; RV32IXQCCMP-NEXT:    sw t4, 28(sp) # 4-byte Folded Spill2122; RV32IXQCCMP-NEXT:    sw t5, 24(sp) # 4-byte Folded Spill2123; RV32IXQCCMP-NEXT:    sw t6, 20(sp) # 4-byte Folded Spill2124; RV32IXQCCMP-NEXT:    .cfi_offset t0, -682125; RV32IXQCCMP-NEXT:    .cfi_offset t1, -722126; RV32IXQCCMP-NEXT:    .cfi_offset t2, -762127; RV32IXQCCMP-NEXT:    .cfi_offset a0, -802128; RV32IXQCCMP-NEXT:    .cfi_offset a1, -842129; RV32IXQCCMP-NEXT:    .cfi_offset a2, -882130; RV32IXQCCMP-NEXT:    .cfi_offset a3, -922131; RV32IXQCCMP-NEXT:    .cfi_offset a4, -962132; RV32IXQCCMP-NEXT:    .cfi_offset a5, -1002133; RV32IXQCCMP-NEXT:    .cfi_offset a6, -1042134; RV32IXQCCMP-NEXT:    .cfi_offset a7, -1082135; RV32IXQCCMP-NEXT:    .cfi_offset t3, -1122136; RV32IXQCCMP-NEXT:    .cfi_offset t4, -1162137; RV32IXQCCMP-NEXT:    .cfi_offset t5, -1202138; RV32IXQCCMP-NEXT:    .cfi_offset t6, -1242139; RV32IXQCCMP-NEXT:    lui a0, %hi(var_test_irq)2140; RV32IXQCCMP-NEXT:    addi a0, a0, %lo(var_test_irq)2141; RV32IXQCCMP-NEXT:    lw a1, 0(a0)2142; RV32IXQCCMP-NEXT:    sw a1, 16(sp) # 4-byte Folded Spill2143; RV32IXQCCMP-NEXT:    lw a1, 4(a0)2144; RV32IXQCCMP-NEXT:    sw a1, 12(sp) # 4-byte Folded Spill2145; RV32IXQCCMP-NEXT:    lw a1, 8(a0)2146; RV32IXQCCMP-NEXT:    sw a1, 8(sp) # 4-byte Folded Spill2147; RV32IXQCCMP-NEXT:    lw a1, 12(a0)2148; RV32IXQCCMP-NEXT:    sw a1, 4(sp) # 4-byte Folded Spill2149; RV32IXQCCMP-NEXT:    lw a1, 16(a0)2150; RV32IXQCCMP-NEXT:    sw a1, 0(sp) # 4-byte Folded Spill2151; RV32IXQCCMP-NEXT:    lw t3, 20(a0)2152; RV32IXQCCMP-NEXT:    lw t4, 24(a0)2153; RV32IXQCCMP-NEXT:    lw t5, 28(a0)2154; RV32IXQCCMP-NEXT:    lw t6, 32(a0)2155; RV32IXQCCMP-NEXT:    lw s2, 36(a0)2156; RV32IXQCCMP-NEXT:    lw s3, 40(a0)2157; RV32IXQCCMP-NEXT:    lw s4, 44(a0)2158; RV32IXQCCMP-NEXT:    lw s5, 48(a0)2159; RV32IXQCCMP-NEXT:    lw s6, 52(a0)2160; RV32IXQCCMP-NEXT:    lw s7, 56(a0)2161; RV32IXQCCMP-NEXT:    lw s8, 60(a0)2162; RV32IXQCCMP-NEXT:    lw s9, 64(a0)2163; RV32IXQCCMP-NEXT:    lw s10, 68(a0)2164; RV32IXQCCMP-NEXT:    lw s11, 72(a0)2165; RV32IXQCCMP-NEXT:    lw ra, 76(a0)2166; RV32IXQCCMP-NEXT:    lw t2, 80(a0)2167; RV32IXQCCMP-NEXT:    lw s0, 84(a0)2168; RV32IXQCCMP-NEXT:    lw s1, 88(a0)2169; RV32IXQCCMP-NEXT:    lw t1, 92(a0)2170; RV32IXQCCMP-NEXT:    lw t0, 112(a0)2171; RV32IXQCCMP-NEXT:    lw a5, 116(a0)2172; RV32IXQCCMP-NEXT:    lw a3, 120(a0)2173; RV32IXQCCMP-NEXT:    lw a1, 124(a0)2174; RV32IXQCCMP-NEXT:    lw a7, 96(a0)2175; RV32IXQCCMP-NEXT:    lw a6, 100(a0)2176; RV32IXQCCMP-NEXT:    lw a4, 104(a0)2177; RV32IXQCCMP-NEXT:    lw a2, 108(a0)2178; RV32IXQCCMP-NEXT:    sw a1, 124(a0)2179; RV32IXQCCMP-NEXT:    sw a3, 120(a0)2180; RV32IXQCCMP-NEXT:    sw a5, 116(a0)2181; RV32IXQCCMP-NEXT:    sw t0, 112(a0)2182; RV32IXQCCMP-NEXT:    sw a2, 108(a0)2183; RV32IXQCCMP-NEXT:    sw a4, 104(a0)2184; RV32IXQCCMP-NEXT:    sw a6, 100(a0)2185; RV32IXQCCMP-NEXT:    sw a7, 96(a0)2186; RV32IXQCCMP-NEXT:    sw t1, 92(a0)2187; RV32IXQCCMP-NEXT:    sw s1, 88(a0)2188; RV32IXQCCMP-NEXT:    sw s0, 84(a0)2189; RV32IXQCCMP-NEXT:    sw t2, 80(a0)2190; RV32IXQCCMP-NEXT:    sw ra, 76(a0)2191; RV32IXQCCMP-NEXT:    sw s11, 72(a0)2192; RV32IXQCCMP-NEXT:    sw s10, 68(a0)2193; RV32IXQCCMP-NEXT:    sw s9, 64(a0)2194; RV32IXQCCMP-NEXT:    sw s8, 60(a0)2195; RV32IXQCCMP-NEXT:    sw s7, 56(a0)2196; RV32IXQCCMP-NEXT:    sw s6, 52(a0)2197; RV32IXQCCMP-NEXT:    sw s5, 48(a0)2198; RV32IXQCCMP-NEXT:    sw s4, 44(a0)2199; RV32IXQCCMP-NEXT:    sw s3, 40(a0)2200; RV32IXQCCMP-NEXT:    sw s2, 36(a0)2201; RV32IXQCCMP-NEXT:    sw t6, 32(a0)2202; RV32IXQCCMP-NEXT:    sw t5, 28(a0)2203; RV32IXQCCMP-NEXT:    sw t4, 24(a0)2204; RV32IXQCCMP-NEXT:    sw t3, 20(a0)2205; RV32IXQCCMP-NEXT:    lw a1, 0(sp) # 4-byte Folded Reload2206; RV32IXQCCMP-NEXT:    sw a1, 16(a0)2207; RV32IXQCCMP-NEXT:    lw a1, 4(sp) # 4-byte Folded Reload2208; RV32IXQCCMP-NEXT:    sw a1, 12(a0)2209; RV32IXQCCMP-NEXT:    lw a1, 8(sp) # 4-byte Folded Reload2210; RV32IXQCCMP-NEXT:    sw a1, 8(a0)2211; RV32IXQCCMP-NEXT:    lw a1, 12(sp) # 4-byte Folded Reload2212; RV32IXQCCMP-NEXT:    sw a1, 4(a0)2213; RV32IXQCCMP-NEXT:    lw a1, 16(sp) # 4-byte Folded Reload2214; RV32IXQCCMP-NEXT:    sw a1, 0(a0)2215; RV32IXQCCMP-NEXT:    lw t0, 76(sp) # 4-byte Folded Reload2216; RV32IXQCCMP-NEXT:    lw t1, 72(sp) # 4-byte Folded Reload2217; RV32IXQCCMP-NEXT:    lw t2, 68(sp) # 4-byte Folded Reload2218; RV32IXQCCMP-NEXT:    lw a0, 64(sp) # 4-byte Folded Reload2219; RV32IXQCCMP-NEXT:    lw a1, 60(sp) # 4-byte Folded Reload2220; RV32IXQCCMP-NEXT:    lw a2, 56(sp) # 4-byte Folded Reload2221; RV32IXQCCMP-NEXT:    lw a3, 52(sp) # 4-byte Folded Reload2222; RV32IXQCCMP-NEXT:    lw a4, 48(sp) # 4-byte Folded Reload2223; RV32IXQCCMP-NEXT:    lw a5, 44(sp) # 4-byte Folded Reload2224; RV32IXQCCMP-NEXT:    lw a6, 40(sp) # 4-byte Folded Reload2225; RV32IXQCCMP-NEXT:    lw a7, 36(sp) # 4-byte Folded Reload2226; RV32IXQCCMP-NEXT:    lw t3, 32(sp) # 4-byte Folded Reload2227; RV32IXQCCMP-NEXT:    lw t4, 28(sp) # 4-byte Folded Reload2228; RV32IXQCCMP-NEXT:    lw t5, 24(sp) # 4-byte Folded Reload2229; RV32IXQCCMP-NEXT:    lw t6, 20(sp) # 4-byte Folded Reload2230; RV32IXQCCMP-NEXT:    .cfi_restore t02231; RV32IXQCCMP-NEXT:    .cfi_restore t12232; RV32IXQCCMP-NEXT:    .cfi_restore t22233; RV32IXQCCMP-NEXT:    .cfi_restore a02234; RV32IXQCCMP-NEXT:    .cfi_restore a12235; RV32IXQCCMP-NEXT:    .cfi_restore a22236; RV32IXQCCMP-NEXT:    .cfi_restore a32237; RV32IXQCCMP-NEXT:    .cfi_restore a42238; RV32IXQCCMP-NEXT:    .cfi_restore a52239; RV32IXQCCMP-NEXT:    .cfi_restore a62240; RV32IXQCCMP-NEXT:    .cfi_restore a72241; RV32IXQCCMP-NEXT:    .cfi_restore t32242; RV32IXQCCMP-NEXT:    .cfi_restore t42243; RV32IXQCCMP-NEXT:    .cfi_restore t52244; RV32IXQCCMP-NEXT:    .cfi_restore t62245; RV32IXQCCMP-NEXT:    addi sp, sp, 322246; RV32IXQCCMP-NEXT:    .cfi_def_cfa_offset 1122247; RV32IXQCCMP-NEXT:    qc.cm.pop {ra, s0-s11}, 1122248; RV32IXQCCMP-NEXT:    .cfi_restore ra2249; RV32IXQCCMP-NEXT:    .cfi_restore s02250; RV32IXQCCMP-NEXT:    .cfi_restore s12251; RV32IXQCCMP-NEXT:    .cfi_restore s22252; RV32IXQCCMP-NEXT:    .cfi_restore s32253; RV32IXQCCMP-NEXT:    .cfi_restore s42254; RV32IXQCCMP-NEXT:    .cfi_restore s52255; RV32IXQCCMP-NEXT:    .cfi_restore s62256; RV32IXQCCMP-NEXT:    .cfi_restore s72257; RV32IXQCCMP-NEXT:    .cfi_restore s82258; RV32IXQCCMP-NEXT:    .cfi_restore s92259; RV32IXQCCMP-NEXT:    .cfi_restore s102260; RV32IXQCCMP-NEXT:    .cfi_restore s112261; RV32IXQCCMP-NEXT:    .cfi_def_cfa_offset 02262; RV32IXQCCMP-NEXT:    mret2263;2264; RV64IXQCCMP-LABEL: callee_with_irq:2265; RV64IXQCCMP:       # %bb.0:2266; RV64IXQCCMP-NEXT:    qc.cm.push {ra, s0-s11}, -1602267; RV64IXQCCMP-NEXT:    .cfi_def_cfa_offset 1602268; RV64IXQCCMP-NEXT:    .cfi_offset ra, -82269; RV64IXQCCMP-NEXT:    .cfi_offset s0, -162270; RV64IXQCCMP-NEXT:    .cfi_offset s1, -242271; RV64IXQCCMP-NEXT:    .cfi_offset s2, -322272; RV64IXQCCMP-NEXT:    .cfi_offset s3, -402273; RV64IXQCCMP-NEXT:    .cfi_offset s4, -482274; RV64IXQCCMP-NEXT:    .cfi_offset s5, -562275; RV64IXQCCMP-NEXT:    .cfi_offset s6, -642276; RV64IXQCCMP-NEXT:    .cfi_offset s7, -722277; RV64IXQCCMP-NEXT:    .cfi_offset s8, -802278; RV64IXQCCMP-NEXT:    .cfi_offset s9, -882279; RV64IXQCCMP-NEXT:    .cfi_offset s10, -962280; RV64IXQCCMP-NEXT:    .cfi_offset s11, -1042281; RV64IXQCCMP-NEXT:    addi sp, sp, -1122282; RV64IXQCCMP-NEXT:    .cfi_def_cfa_offset 2722283; RV64IXQCCMP-NEXT:    sd t0, 152(sp) # 8-byte Folded Spill2284; RV64IXQCCMP-NEXT:    sd t1, 144(sp) # 8-byte Folded Spill2285; RV64IXQCCMP-NEXT:    sd t2, 136(sp) # 8-byte Folded Spill2286; RV64IXQCCMP-NEXT:    sd a0, 128(sp) # 8-byte Folded Spill2287; RV64IXQCCMP-NEXT:    sd a1, 120(sp) # 8-byte Folded Spill2288; RV64IXQCCMP-NEXT:    sd a2, 112(sp) # 8-byte Folded Spill2289; RV64IXQCCMP-NEXT:    sd a3, 104(sp) # 8-byte Folded Spill2290; RV64IXQCCMP-NEXT:    sd a4, 96(sp) # 8-byte Folded Spill2291; RV64IXQCCMP-NEXT:    sd a5, 88(sp) # 8-byte Folded Spill2292; RV64IXQCCMP-NEXT:    sd a6, 80(sp) # 8-byte Folded Spill2293; RV64IXQCCMP-NEXT:    sd a7, 72(sp) # 8-byte Folded Spill2294; RV64IXQCCMP-NEXT:    sd t3, 64(sp) # 8-byte Folded Spill2295; RV64IXQCCMP-NEXT:    sd t4, 56(sp) # 8-byte Folded Spill2296; RV64IXQCCMP-NEXT:    sd t5, 48(sp) # 8-byte Folded Spill2297; RV64IXQCCMP-NEXT:    sd t6, 40(sp) # 8-byte Folded Spill2298; RV64IXQCCMP-NEXT:    .cfi_offset t0, -1202299; RV64IXQCCMP-NEXT:    .cfi_offset t1, -1282300; RV64IXQCCMP-NEXT:    .cfi_offset t2, -1362301; RV64IXQCCMP-NEXT:    .cfi_offset a0, -1442302; RV64IXQCCMP-NEXT:    .cfi_offset a1, -1522303; RV64IXQCCMP-NEXT:    .cfi_offset a2, -1602304; RV64IXQCCMP-NEXT:    .cfi_offset a3, -1682305; RV64IXQCCMP-NEXT:    .cfi_offset a4, -1762306; RV64IXQCCMP-NEXT:    .cfi_offset a5, -1842307; RV64IXQCCMP-NEXT:    .cfi_offset a6, -1922308; RV64IXQCCMP-NEXT:    .cfi_offset a7, -2002309; RV64IXQCCMP-NEXT:    .cfi_offset t3, -2082310; RV64IXQCCMP-NEXT:    .cfi_offset t4, -2162311; RV64IXQCCMP-NEXT:    .cfi_offset t5, -2242312; RV64IXQCCMP-NEXT:    .cfi_offset t6, -2322313; RV64IXQCCMP-NEXT:    lui a0, %hi(var_test_irq)2314; RV64IXQCCMP-NEXT:    addi a0, a0, %lo(var_test_irq)2315; RV64IXQCCMP-NEXT:    lw a1, 0(a0)2316; RV64IXQCCMP-NEXT:    sd a1, 32(sp) # 8-byte Folded Spill2317; RV64IXQCCMP-NEXT:    lw a1, 4(a0)2318; RV64IXQCCMP-NEXT:    sd a1, 24(sp) # 8-byte Folded Spill2319; RV64IXQCCMP-NEXT:    lw a1, 8(a0)2320; RV64IXQCCMP-NEXT:    sd a1, 16(sp) # 8-byte Folded Spill2321; RV64IXQCCMP-NEXT:    lw a1, 12(a0)2322; RV64IXQCCMP-NEXT:    sd a1, 8(sp) # 8-byte Folded Spill2323; RV64IXQCCMP-NEXT:    lw a1, 16(a0)2324; RV64IXQCCMP-NEXT:    sd a1, 0(sp) # 8-byte Folded Spill2325; RV64IXQCCMP-NEXT:    lw t3, 20(a0)2326; RV64IXQCCMP-NEXT:    lw t4, 24(a0)2327; RV64IXQCCMP-NEXT:    lw t5, 28(a0)2328; RV64IXQCCMP-NEXT:    lw t6, 32(a0)2329; RV64IXQCCMP-NEXT:    lw s2, 36(a0)2330; RV64IXQCCMP-NEXT:    lw s3, 40(a0)2331; RV64IXQCCMP-NEXT:    lw s4, 44(a0)2332; RV64IXQCCMP-NEXT:    lw s5, 48(a0)2333; RV64IXQCCMP-NEXT:    lw s6, 52(a0)2334; RV64IXQCCMP-NEXT:    lw s7, 56(a0)2335; RV64IXQCCMP-NEXT:    lw s8, 60(a0)2336; RV64IXQCCMP-NEXT:    lw s9, 64(a0)2337; RV64IXQCCMP-NEXT:    lw s10, 68(a0)2338; RV64IXQCCMP-NEXT:    lw s11, 72(a0)2339; RV64IXQCCMP-NEXT:    lw ra, 76(a0)2340; RV64IXQCCMP-NEXT:    lw t2, 80(a0)2341; RV64IXQCCMP-NEXT:    lw s0, 84(a0)2342; RV64IXQCCMP-NEXT:    lw s1, 88(a0)2343; RV64IXQCCMP-NEXT:    lw t1, 92(a0)2344; RV64IXQCCMP-NEXT:    lw t0, 112(a0)2345; RV64IXQCCMP-NEXT:    lw a5, 116(a0)2346; RV64IXQCCMP-NEXT:    lw a3, 120(a0)2347; RV64IXQCCMP-NEXT:    lw a1, 124(a0)2348; RV64IXQCCMP-NEXT:    lw a7, 96(a0)2349; RV64IXQCCMP-NEXT:    lw a6, 100(a0)2350; RV64IXQCCMP-NEXT:    lw a4, 104(a0)2351; RV64IXQCCMP-NEXT:    lw a2, 108(a0)2352; RV64IXQCCMP-NEXT:    sw a1, 124(a0)2353; RV64IXQCCMP-NEXT:    sw a3, 120(a0)2354; RV64IXQCCMP-NEXT:    sw a5, 116(a0)2355; RV64IXQCCMP-NEXT:    sw t0, 112(a0)2356; RV64IXQCCMP-NEXT:    sw a2, 108(a0)2357; RV64IXQCCMP-NEXT:    sw a4, 104(a0)2358; RV64IXQCCMP-NEXT:    sw a6, 100(a0)2359; RV64IXQCCMP-NEXT:    sw a7, 96(a0)2360; RV64IXQCCMP-NEXT:    sw t1, 92(a0)2361; RV64IXQCCMP-NEXT:    sw s1, 88(a0)2362; RV64IXQCCMP-NEXT:    sw s0, 84(a0)2363; RV64IXQCCMP-NEXT:    sw t2, 80(a0)2364; RV64IXQCCMP-NEXT:    sw ra, 76(a0)2365; RV64IXQCCMP-NEXT:    sw s11, 72(a0)2366; RV64IXQCCMP-NEXT:    sw s10, 68(a0)2367; RV64IXQCCMP-NEXT:    sw s9, 64(a0)2368; RV64IXQCCMP-NEXT:    sw s8, 60(a0)2369; RV64IXQCCMP-NEXT:    sw s7, 56(a0)2370; RV64IXQCCMP-NEXT:    sw s6, 52(a0)2371; RV64IXQCCMP-NEXT:    sw s5, 48(a0)2372; RV64IXQCCMP-NEXT:    sw s4, 44(a0)2373; RV64IXQCCMP-NEXT:    sw s3, 40(a0)2374; RV64IXQCCMP-NEXT:    sw s2, 36(a0)2375; RV64IXQCCMP-NEXT:    sw t6, 32(a0)2376; RV64IXQCCMP-NEXT:    sw t5, 28(a0)2377; RV64IXQCCMP-NEXT:    sw t4, 24(a0)2378; RV64IXQCCMP-NEXT:    sw t3, 20(a0)2379; RV64IXQCCMP-NEXT:    ld a1, 0(sp) # 8-byte Folded Reload2380; RV64IXQCCMP-NEXT:    sw a1, 16(a0)2381; RV64IXQCCMP-NEXT:    ld a1, 8(sp) # 8-byte Folded Reload2382; RV64IXQCCMP-NEXT:    sw a1, 12(a0)2383; RV64IXQCCMP-NEXT:    ld a1, 16(sp) # 8-byte Folded Reload2384; RV64IXQCCMP-NEXT:    sw a1, 8(a0)2385; RV64IXQCCMP-NEXT:    ld a1, 24(sp) # 8-byte Folded Reload2386; RV64IXQCCMP-NEXT:    sw a1, 4(a0)2387; RV64IXQCCMP-NEXT:    ld a1, 32(sp) # 8-byte Folded Reload2388; RV64IXQCCMP-NEXT:    sw a1, 0(a0)2389; RV64IXQCCMP-NEXT:    ld t0, 152(sp) # 8-byte Folded Reload2390; RV64IXQCCMP-NEXT:    ld t1, 144(sp) # 8-byte Folded Reload2391; RV64IXQCCMP-NEXT:    ld t2, 136(sp) # 8-byte Folded Reload2392; RV64IXQCCMP-NEXT:    ld a0, 128(sp) # 8-byte Folded Reload2393; RV64IXQCCMP-NEXT:    ld a1, 120(sp) # 8-byte Folded Reload2394; RV64IXQCCMP-NEXT:    ld a2, 112(sp) # 8-byte Folded Reload2395; RV64IXQCCMP-NEXT:    ld a3, 104(sp) # 8-byte Folded Reload2396; RV64IXQCCMP-NEXT:    ld a4, 96(sp) # 8-byte Folded Reload2397; RV64IXQCCMP-NEXT:    ld a5, 88(sp) # 8-byte Folded Reload2398; RV64IXQCCMP-NEXT:    ld a6, 80(sp) # 8-byte Folded Reload2399; RV64IXQCCMP-NEXT:    ld a7, 72(sp) # 8-byte Folded Reload2400; RV64IXQCCMP-NEXT:    ld t3, 64(sp) # 8-byte Folded Reload2401; RV64IXQCCMP-NEXT:    ld t4, 56(sp) # 8-byte Folded Reload2402; RV64IXQCCMP-NEXT:    ld t5, 48(sp) # 8-byte Folded Reload2403; RV64IXQCCMP-NEXT:    ld t6, 40(sp) # 8-byte Folded Reload2404; RV64IXQCCMP-NEXT:    .cfi_restore t02405; RV64IXQCCMP-NEXT:    .cfi_restore t12406; RV64IXQCCMP-NEXT:    .cfi_restore t22407; RV64IXQCCMP-NEXT:    .cfi_restore a02408; RV64IXQCCMP-NEXT:    .cfi_restore a12409; RV64IXQCCMP-NEXT:    .cfi_restore a22410; RV64IXQCCMP-NEXT:    .cfi_restore a32411; RV64IXQCCMP-NEXT:    .cfi_restore a42412; RV64IXQCCMP-NEXT:    .cfi_restore a52413; RV64IXQCCMP-NEXT:    .cfi_restore a62414; RV64IXQCCMP-NEXT:    .cfi_restore a72415; RV64IXQCCMP-NEXT:    .cfi_restore t32416; RV64IXQCCMP-NEXT:    .cfi_restore t42417; RV64IXQCCMP-NEXT:    .cfi_restore t52418; RV64IXQCCMP-NEXT:    .cfi_restore t62419; RV64IXQCCMP-NEXT:    addi sp, sp, 1122420; RV64IXQCCMP-NEXT:    .cfi_def_cfa_offset 1602421; RV64IXQCCMP-NEXT:    qc.cm.pop {ra, s0-s11}, 1602422; RV64IXQCCMP-NEXT:    .cfi_restore ra2423; RV64IXQCCMP-NEXT:    .cfi_restore s02424; RV64IXQCCMP-NEXT:    .cfi_restore s12425; RV64IXQCCMP-NEXT:    .cfi_restore s22426; RV64IXQCCMP-NEXT:    .cfi_restore s32427; RV64IXQCCMP-NEXT:    .cfi_restore s42428; RV64IXQCCMP-NEXT:    .cfi_restore s52429; RV64IXQCCMP-NEXT:    .cfi_restore s62430; RV64IXQCCMP-NEXT:    .cfi_restore s72431; RV64IXQCCMP-NEXT:    .cfi_restore s82432; RV64IXQCCMP-NEXT:    .cfi_restore s92433; RV64IXQCCMP-NEXT:    .cfi_restore s102434; RV64IXQCCMP-NEXT:    .cfi_restore s112435; RV64IXQCCMP-NEXT:    .cfi_def_cfa_offset 02436; RV64IXQCCMP-NEXT:    mret2437;2438; RV32IXQCCMP-FP-LABEL: callee_with_irq:2439; RV32IXQCCMP-FP:       # %bb.0:2440; RV32IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0-s11}, -1122441; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 1122442; RV32IXQCCMP-FP-NEXT:    .cfi_offset ra, -42443; RV32IXQCCMP-FP-NEXT:    .cfi_offset s0, -82444; RV32IXQCCMP-FP-NEXT:    .cfi_offset s1, -122445; RV32IXQCCMP-FP-NEXT:    .cfi_offset s2, -162446; RV32IXQCCMP-FP-NEXT:    .cfi_offset s3, -202447; RV32IXQCCMP-FP-NEXT:    .cfi_offset s4, -242448; RV32IXQCCMP-FP-NEXT:    .cfi_offset s5, -282449; RV32IXQCCMP-FP-NEXT:    .cfi_offset s6, -322450; RV32IXQCCMP-FP-NEXT:    .cfi_offset s7, -362451; RV32IXQCCMP-FP-NEXT:    .cfi_offset s8, -402452; RV32IXQCCMP-FP-NEXT:    .cfi_offset s9, -442453; RV32IXQCCMP-FP-NEXT:    .cfi_offset s10, -482454; RV32IXQCCMP-FP-NEXT:    .cfi_offset s11, -522455; RV32IXQCCMP-FP-NEXT:    addi sp, sp, -482456; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 1602457; RV32IXQCCMP-FP-NEXT:    sw t0, 92(sp) # 4-byte Folded Spill2458; RV32IXQCCMP-FP-NEXT:    sw t1, 88(sp) # 4-byte Folded Spill2459; RV32IXQCCMP-FP-NEXT:    sw t2, 84(sp) # 4-byte Folded Spill2460; RV32IXQCCMP-FP-NEXT:    sw a0, 80(sp) # 4-byte Folded Spill2461; RV32IXQCCMP-FP-NEXT:    sw a1, 76(sp) # 4-byte Folded Spill2462; RV32IXQCCMP-FP-NEXT:    sw a2, 72(sp) # 4-byte Folded Spill2463; RV32IXQCCMP-FP-NEXT:    sw a3, 68(sp) # 4-byte Folded Spill2464; RV32IXQCCMP-FP-NEXT:    sw a4, 64(sp) # 4-byte Folded Spill2465; RV32IXQCCMP-FP-NEXT:    sw a5, 60(sp) # 4-byte Folded Spill2466; RV32IXQCCMP-FP-NEXT:    sw a6, 56(sp) # 4-byte Folded Spill2467; RV32IXQCCMP-FP-NEXT:    sw a7, 52(sp) # 4-byte Folded Spill2468; RV32IXQCCMP-FP-NEXT:    sw t3, 48(sp) # 4-byte Folded Spill2469; RV32IXQCCMP-FP-NEXT:    sw t4, 44(sp) # 4-byte Folded Spill2470; RV32IXQCCMP-FP-NEXT:    sw t5, 40(sp) # 4-byte Folded Spill2471; RV32IXQCCMP-FP-NEXT:    sw t6, 36(sp) # 4-byte Folded Spill2472; RV32IXQCCMP-FP-NEXT:    .cfi_offset t0, -682473; RV32IXQCCMP-FP-NEXT:    .cfi_offset t1, -722474; RV32IXQCCMP-FP-NEXT:    .cfi_offset t2, -762475; RV32IXQCCMP-FP-NEXT:    .cfi_offset a0, -802476; RV32IXQCCMP-FP-NEXT:    .cfi_offset a1, -842477; RV32IXQCCMP-FP-NEXT:    .cfi_offset a2, -882478; RV32IXQCCMP-FP-NEXT:    .cfi_offset a3, -922479; RV32IXQCCMP-FP-NEXT:    .cfi_offset a4, -962480; RV32IXQCCMP-FP-NEXT:    .cfi_offset a5, -1002481; RV32IXQCCMP-FP-NEXT:    .cfi_offset a6, -1042482; RV32IXQCCMP-FP-NEXT:    .cfi_offset a7, -1082483; RV32IXQCCMP-FP-NEXT:    .cfi_offset t3, -1122484; RV32IXQCCMP-FP-NEXT:    .cfi_offset t4, -1162485; RV32IXQCCMP-FP-NEXT:    .cfi_offset t5, -1202486; RV32IXQCCMP-FP-NEXT:    .cfi_offset t6, -1242487; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 02488; RV32IXQCCMP-FP-NEXT:    lui a0, %hi(var_test_irq)2489; RV32IXQCCMP-FP-NEXT:    addi a0, a0, %lo(var_test_irq)2490; RV32IXQCCMP-FP-NEXT:    lw a1, 0(a0)2491; RV32IXQCCMP-FP-NEXT:    sw a1, -128(s0) # 4-byte Folded Spill2492; RV32IXQCCMP-FP-NEXT:    lw a1, 4(a0)2493; RV32IXQCCMP-FP-NEXT:    sw a1, -132(s0) # 4-byte Folded Spill2494; RV32IXQCCMP-FP-NEXT:    lw a1, 8(a0)2495; RV32IXQCCMP-FP-NEXT:    sw a1, -136(s0) # 4-byte Folded Spill2496; RV32IXQCCMP-FP-NEXT:    lw a1, 12(a0)2497; RV32IXQCCMP-FP-NEXT:    sw a1, -140(s0) # 4-byte Folded Spill2498; RV32IXQCCMP-FP-NEXT:    lw a1, 16(a0)2499; RV32IXQCCMP-FP-NEXT:    sw a1, -144(s0) # 4-byte Folded Spill2500; RV32IXQCCMP-FP-NEXT:    lw a1, 20(a0)2501; RV32IXQCCMP-FP-NEXT:    sw a1, -148(s0) # 4-byte Folded Spill2502; RV32IXQCCMP-FP-NEXT:    lw t4, 24(a0)2503; RV32IXQCCMP-FP-NEXT:    lw t5, 28(a0)2504; RV32IXQCCMP-FP-NEXT:    lw t6, 32(a0)2505; RV32IXQCCMP-FP-NEXT:    lw s2, 36(a0)2506; RV32IXQCCMP-FP-NEXT:    lw s3, 40(a0)2507; RV32IXQCCMP-FP-NEXT:    lw s4, 44(a0)2508; RV32IXQCCMP-FP-NEXT:    lw s5, 48(a0)2509; RV32IXQCCMP-FP-NEXT:    lw s6, 52(a0)2510; RV32IXQCCMP-FP-NEXT:    lw s7, 56(a0)2511; RV32IXQCCMP-FP-NEXT:    lw s8, 60(a0)2512; RV32IXQCCMP-FP-NEXT:    lw s9, 64(a0)2513; RV32IXQCCMP-FP-NEXT:    lw s10, 68(a0)2514; RV32IXQCCMP-FP-NEXT:    lw s11, 72(a0)2515; RV32IXQCCMP-FP-NEXT:    lw ra, 76(a0)2516; RV32IXQCCMP-FP-NEXT:    lw s1, 80(a0)2517; RV32IXQCCMP-FP-NEXT:    lw t3, 84(a0)2518; RV32IXQCCMP-FP-NEXT:    lw t2, 88(a0)2519; RV32IXQCCMP-FP-NEXT:    lw t1, 92(a0)2520; RV32IXQCCMP-FP-NEXT:    lw t0, 112(a0)2521; RV32IXQCCMP-FP-NEXT:    lw a6, 116(a0)2522; RV32IXQCCMP-FP-NEXT:    lw a4, 120(a0)2523; RV32IXQCCMP-FP-NEXT:    lw a1, 124(a0)2524; RV32IXQCCMP-FP-NEXT:    lw a7, 96(a0)2525; RV32IXQCCMP-FP-NEXT:    lw a5, 100(a0)2526; RV32IXQCCMP-FP-NEXT:    lw a3, 104(a0)2527; RV32IXQCCMP-FP-NEXT:    lw a2, 108(a0)2528; RV32IXQCCMP-FP-NEXT:    sw a1, 124(a0)2529; RV32IXQCCMP-FP-NEXT:    sw a4, 120(a0)2530; RV32IXQCCMP-FP-NEXT:    sw a6, 116(a0)2531; RV32IXQCCMP-FP-NEXT:    sw t0, 112(a0)2532; RV32IXQCCMP-FP-NEXT:    sw a2, 108(a0)2533; RV32IXQCCMP-FP-NEXT:    sw a3, 104(a0)2534; RV32IXQCCMP-FP-NEXT:    sw a5, 100(a0)2535; RV32IXQCCMP-FP-NEXT:    sw a7, 96(a0)2536; RV32IXQCCMP-FP-NEXT:    sw t1, 92(a0)2537; RV32IXQCCMP-FP-NEXT:    sw t2, 88(a0)2538; RV32IXQCCMP-FP-NEXT:    sw t3, 84(a0)2539; RV32IXQCCMP-FP-NEXT:    sw s1, 80(a0)2540; RV32IXQCCMP-FP-NEXT:    sw ra, 76(a0)2541; RV32IXQCCMP-FP-NEXT:    sw s11, 72(a0)2542; RV32IXQCCMP-FP-NEXT:    sw s10, 68(a0)2543; RV32IXQCCMP-FP-NEXT:    sw s9, 64(a0)2544; RV32IXQCCMP-FP-NEXT:    sw s8, 60(a0)2545; RV32IXQCCMP-FP-NEXT:    sw s7, 56(a0)2546; RV32IXQCCMP-FP-NEXT:    sw s6, 52(a0)2547; RV32IXQCCMP-FP-NEXT:    sw s5, 48(a0)2548; RV32IXQCCMP-FP-NEXT:    sw s4, 44(a0)2549; RV32IXQCCMP-FP-NEXT:    sw s3, 40(a0)2550; RV32IXQCCMP-FP-NEXT:    sw s2, 36(a0)2551; RV32IXQCCMP-FP-NEXT:    sw t6, 32(a0)2552; RV32IXQCCMP-FP-NEXT:    sw t5, 28(a0)2553; RV32IXQCCMP-FP-NEXT:    sw t4, 24(a0)2554; RV32IXQCCMP-FP-NEXT:    lw a1, -148(s0) # 4-byte Folded Reload2555; RV32IXQCCMP-FP-NEXT:    sw a1, 20(a0)2556; RV32IXQCCMP-FP-NEXT:    lw a1, -144(s0) # 4-byte Folded Reload2557; RV32IXQCCMP-FP-NEXT:    sw a1, 16(a0)2558; RV32IXQCCMP-FP-NEXT:    lw a1, -140(s0) # 4-byte Folded Reload2559; RV32IXQCCMP-FP-NEXT:    sw a1, 12(a0)2560; RV32IXQCCMP-FP-NEXT:    lw a1, -136(s0) # 4-byte Folded Reload2561; RV32IXQCCMP-FP-NEXT:    sw a1, 8(a0)2562; RV32IXQCCMP-FP-NEXT:    lw a1, -132(s0) # 4-byte Folded Reload2563; RV32IXQCCMP-FP-NEXT:    sw a1, 4(a0)2564; RV32IXQCCMP-FP-NEXT:    lw a1, -128(s0) # 4-byte Folded Reload2565; RV32IXQCCMP-FP-NEXT:    sw a1, 0(a0)2566; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 1602567; RV32IXQCCMP-FP-NEXT:    lw t0, 92(sp) # 4-byte Folded Reload2568; RV32IXQCCMP-FP-NEXT:    lw t1, 88(sp) # 4-byte Folded Reload2569; RV32IXQCCMP-FP-NEXT:    lw t2, 84(sp) # 4-byte Folded Reload2570; RV32IXQCCMP-FP-NEXT:    lw a0, 80(sp) # 4-byte Folded Reload2571; RV32IXQCCMP-FP-NEXT:    lw a1, 76(sp) # 4-byte Folded Reload2572; RV32IXQCCMP-FP-NEXT:    lw a2, 72(sp) # 4-byte Folded Reload2573; RV32IXQCCMP-FP-NEXT:    lw a3, 68(sp) # 4-byte Folded Reload2574; RV32IXQCCMP-FP-NEXT:    lw a4, 64(sp) # 4-byte Folded Reload2575; RV32IXQCCMP-FP-NEXT:    lw a5, 60(sp) # 4-byte Folded Reload2576; RV32IXQCCMP-FP-NEXT:    lw a6, 56(sp) # 4-byte Folded Reload2577; RV32IXQCCMP-FP-NEXT:    lw a7, 52(sp) # 4-byte Folded Reload2578; RV32IXQCCMP-FP-NEXT:    lw t3, 48(sp) # 4-byte Folded Reload2579; RV32IXQCCMP-FP-NEXT:    lw t4, 44(sp) # 4-byte Folded Reload2580; RV32IXQCCMP-FP-NEXT:    lw t5, 40(sp) # 4-byte Folded Reload2581; RV32IXQCCMP-FP-NEXT:    lw t6, 36(sp) # 4-byte Folded Reload2582; RV32IXQCCMP-FP-NEXT:    .cfi_restore t02583; RV32IXQCCMP-FP-NEXT:    .cfi_restore t12584; RV32IXQCCMP-FP-NEXT:    .cfi_restore t22585; RV32IXQCCMP-FP-NEXT:    .cfi_restore a02586; RV32IXQCCMP-FP-NEXT:    .cfi_restore a12587; RV32IXQCCMP-FP-NEXT:    .cfi_restore a22588; RV32IXQCCMP-FP-NEXT:    .cfi_restore a32589; RV32IXQCCMP-FP-NEXT:    .cfi_restore a42590; RV32IXQCCMP-FP-NEXT:    .cfi_restore a52591; RV32IXQCCMP-FP-NEXT:    .cfi_restore a62592; RV32IXQCCMP-FP-NEXT:    .cfi_restore a72593; RV32IXQCCMP-FP-NEXT:    .cfi_restore t32594; RV32IXQCCMP-FP-NEXT:    .cfi_restore t42595; RV32IXQCCMP-FP-NEXT:    .cfi_restore t52596; RV32IXQCCMP-FP-NEXT:    .cfi_restore t62597; RV32IXQCCMP-FP-NEXT:    addi sp, sp, 482598; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 1122599; RV32IXQCCMP-FP-NEXT:    qc.cm.pop {ra, s0-s11}, 1122600; RV32IXQCCMP-FP-NEXT:    .cfi_restore ra2601; RV32IXQCCMP-FP-NEXT:    .cfi_restore s02602; RV32IXQCCMP-FP-NEXT:    .cfi_restore s12603; RV32IXQCCMP-FP-NEXT:    .cfi_restore s22604; RV32IXQCCMP-FP-NEXT:    .cfi_restore s32605; RV32IXQCCMP-FP-NEXT:    .cfi_restore s42606; RV32IXQCCMP-FP-NEXT:    .cfi_restore s52607; RV32IXQCCMP-FP-NEXT:    .cfi_restore s62608; RV32IXQCCMP-FP-NEXT:    .cfi_restore s72609; RV32IXQCCMP-FP-NEXT:    .cfi_restore s82610; RV32IXQCCMP-FP-NEXT:    .cfi_restore s92611; RV32IXQCCMP-FP-NEXT:    .cfi_restore s102612; RV32IXQCCMP-FP-NEXT:    .cfi_restore s112613; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 02614; RV32IXQCCMP-FP-NEXT:    mret2615;2616; RV64IXQCCMP-FP-LABEL: callee_with_irq:2617; RV64IXQCCMP-FP:       # %bb.0:2618; RV64IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0-s11}, -1602619; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 1602620; RV64IXQCCMP-FP-NEXT:    .cfi_offset ra, -82621; RV64IXQCCMP-FP-NEXT:    .cfi_offset s0, -162622; RV64IXQCCMP-FP-NEXT:    .cfi_offset s1, -242623; RV64IXQCCMP-FP-NEXT:    .cfi_offset s2, -322624; RV64IXQCCMP-FP-NEXT:    .cfi_offset s3, -402625; RV64IXQCCMP-FP-NEXT:    .cfi_offset s4, -482626; RV64IXQCCMP-FP-NEXT:    .cfi_offset s5, -562627; RV64IXQCCMP-FP-NEXT:    .cfi_offset s6, -642628; RV64IXQCCMP-FP-NEXT:    .cfi_offset s7, -722629; RV64IXQCCMP-FP-NEXT:    .cfi_offset s8, -802630; RV64IXQCCMP-FP-NEXT:    .cfi_offset s9, -882631; RV64IXQCCMP-FP-NEXT:    .cfi_offset s10, -962632; RV64IXQCCMP-FP-NEXT:    .cfi_offset s11, -1042633; RV64IXQCCMP-FP-NEXT:    addi sp, sp, -1282634; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 2882635; RV64IXQCCMP-FP-NEXT:    sd t0, 168(sp) # 8-byte Folded Spill2636; RV64IXQCCMP-FP-NEXT:    sd t1, 160(sp) # 8-byte Folded Spill2637; RV64IXQCCMP-FP-NEXT:    sd t2, 152(sp) # 8-byte Folded Spill2638; RV64IXQCCMP-FP-NEXT:    sd a0, 144(sp) # 8-byte Folded Spill2639; RV64IXQCCMP-FP-NEXT:    sd a1, 136(sp) # 8-byte Folded Spill2640; RV64IXQCCMP-FP-NEXT:    sd a2, 128(sp) # 8-byte Folded Spill2641; RV64IXQCCMP-FP-NEXT:    sd a3, 120(sp) # 8-byte Folded Spill2642; RV64IXQCCMP-FP-NEXT:    sd a4, 112(sp) # 8-byte Folded Spill2643; RV64IXQCCMP-FP-NEXT:    sd a5, 104(sp) # 8-byte Folded Spill2644; RV64IXQCCMP-FP-NEXT:    sd a6, 96(sp) # 8-byte Folded Spill2645; RV64IXQCCMP-FP-NEXT:    sd a7, 88(sp) # 8-byte Folded Spill2646; RV64IXQCCMP-FP-NEXT:    sd t3, 80(sp) # 8-byte Folded Spill2647; RV64IXQCCMP-FP-NEXT:    sd t4, 72(sp) # 8-byte Folded Spill2648; RV64IXQCCMP-FP-NEXT:    sd t5, 64(sp) # 8-byte Folded Spill2649; RV64IXQCCMP-FP-NEXT:    sd t6, 56(sp) # 8-byte Folded Spill2650; RV64IXQCCMP-FP-NEXT:    .cfi_offset t0, -1202651; RV64IXQCCMP-FP-NEXT:    .cfi_offset t1, -1282652; RV64IXQCCMP-FP-NEXT:    .cfi_offset t2, -1362653; RV64IXQCCMP-FP-NEXT:    .cfi_offset a0, -1442654; RV64IXQCCMP-FP-NEXT:    .cfi_offset a1, -1522655; RV64IXQCCMP-FP-NEXT:    .cfi_offset a2, -1602656; RV64IXQCCMP-FP-NEXT:    .cfi_offset a3, -1682657; RV64IXQCCMP-FP-NEXT:    .cfi_offset a4, -1762658; RV64IXQCCMP-FP-NEXT:    .cfi_offset a5, -1842659; RV64IXQCCMP-FP-NEXT:    .cfi_offset a6, -1922660; RV64IXQCCMP-FP-NEXT:    .cfi_offset a7, -2002661; RV64IXQCCMP-FP-NEXT:    .cfi_offset t3, -2082662; RV64IXQCCMP-FP-NEXT:    .cfi_offset t4, -2162663; RV64IXQCCMP-FP-NEXT:    .cfi_offset t5, -2242664; RV64IXQCCMP-FP-NEXT:    .cfi_offset t6, -2322665; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 02666; RV64IXQCCMP-FP-NEXT:    lui a0, %hi(var_test_irq)2667; RV64IXQCCMP-FP-NEXT:    addi a0, a0, %lo(var_test_irq)2668; RV64IXQCCMP-FP-NEXT:    lw a1, 0(a0)2669; RV64IXQCCMP-FP-NEXT:    sd a1, -240(s0) # 8-byte Folded Spill2670; RV64IXQCCMP-FP-NEXT:    lw a1, 4(a0)2671; RV64IXQCCMP-FP-NEXT:    sd a1, -248(s0) # 8-byte Folded Spill2672; RV64IXQCCMP-FP-NEXT:    lw a1, 8(a0)2673; RV64IXQCCMP-FP-NEXT:    sd a1, -256(s0) # 8-byte Folded Spill2674; RV64IXQCCMP-FP-NEXT:    lw a1, 12(a0)2675; RV64IXQCCMP-FP-NEXT:    sd a1, -264(s0) # 8-byte Folded Spill2676; RV64IXQCCMP-FP-NEXT:    lw a1, 16(a0)2677; RV64IXQCCMP-FP-NEXT:    sd a1, -272(s0) # 8-byte Folded Spill2678; RV64IXQCCMP-FP-NEXT:    lw a1, 20(a0)2679; RV64IXQCCMP-FP-NEXT:    sd a1, -280(s0) # 8-byte Folded Spill2680; RV64IXQCCMP-FP-NEXT:    lw t4, 24(a0)2681; RV64IXQCCMP-FP-NEXT:    lw t5, 28(a0)2682; RV64IXQCCMP-FP-NEXT:    lw t6, 32(a0)2683; RV64IXQCCMP-FP-NEXT:    lw s2, 36(a0)2684; RV64IXQCCMP-FP-NEXT:    lw s3, 40(a0)2685; RV64IXQCCMP-FP-NEXT:    lw s4, 44(a0)2686; RV64IXQCCMP-FP-NEXT:    lw s5, 48(a0)2687; RV64IXQCCMP-FP-NEXT:    lw s6, 52(a0)2688; RV64IXQCCMP-FP-NEXT:    lw s7, 56(a0)2689; RV64IXQCCMP-FP-NEXT:    lw s8, 60(a0)2690; RV64IXQCCMP-FP-NEXT:    lw s9, 64(a0)2691; RV64IXQCCMP-FP-NEXT:    lw s10, 68(a0)2692; RV64IXQCCMP-FP-NEXT:    lw s11, 72(a0)2693; RV64IXQCCMP-FP-NEXT:    lw ra, 76(a0)2694; RV64IXQCCMP-FP-NEXT:    lw s1, 80(a0)2695; RV64IXQCCMP-FP-NEXT:    lw t3, 84(a0)2696; RV64IXQCCMP-FP-NEXT:    lw t2, 88(a0)2697; RV64IXQCCMP-FP-NEXT:    lw t1, 92(a0)2698; RV64IXQCCMP-FP-NEXT:    lw t0, 112(a0)2699; RV64IXQCCMP-FP-NEXT:    lw a6, 116(a0)2700; RV64IXQCCMP-FP-NEXT:    lw a4, 120(a0)2701; RV64IXQCCMP-FP-NEXT:    lw a1, 124(a0)2702; RV64IXQCCMP-FP-NEXT:    lw a7, 96(a0)2703; RV64IXQCCMP-FP-NEXT:    lw a5, 100(a0)2704; RV64IXQCCMP-FP-NEXT:    lw a3, 104(a0)2705; RV64IXQCCMP-FP-NEXT:    lw a2, 108(a0)2706; RV64IXQCCMP-FP-NEXT:    sw a1, 124(a0)2707; RV64IXQCCMP-FP-NEXT:    sw a4, 120(a0)2708; RV64IXQCCMP-FP-NEXT:    sw a6, 116(a0)2709; RV64IXQCCMP-FP-NEXT:    sw t0, 112(a0)2710; RV64IXQCCMP-FP-NEXT:    sw a2, 108(a0)2711; RV64IXQCCMP-FP-NEXT:    sw a3, 104(a0)2712; RV64IXQCCMP-FP-NEXT:    sw a5, 100(a0)2713; RV64IXQCCMP-FP-NEXT:    sw a7, 96(a0)2714; RV64IXQCCMP-FP-NEXT:    sw t1, 92(a0)2715; RV64IXQCCMP-FP-NEXT:    sw t2, 88(a0)2716; RV64IXQCCMP-FP-NEXT:    sw t3, 84(a0)2717; RV64IXQCCMP-FP-NEXT:    sw s1, 80(a0)2718; RV64IXQCCMP-FP-NEXT:    sw ra, 76(a0)2719; RV64IXQCCMP-FP-NEXT:    sw s11, 72(a0)2720; RV64IXQCCMP-FP-NEXT:    sw s10, 68(a0)2721; RV64IXQCCMP-FP-NEXT:    sw s9, 64(a0)2722; RV64IXQCCMP-FP-NEXT:    sw s8, 60(a0)2723; RV64IXQCCMP-FP-NEXT:    sw s7, 56(a0)2724; RV64IXQCCMP-FP-NEXT:    sw s6, 52(a0)2725; RV64IXQCCMP-FP-NEXT:    sw s5, 48(a0)2726; RV64IXQCCMP-FP-NEXT:    sw s4, 44(a0)2727; RV64IXQCCMP-FP-NEXT:    sw s3, 40(a0)2728; RV64IXQCCMP-FP-NEXT:    sw s2, 36(a0)2729; RV64IXQCCMP-FP-NEXT:    sw t6, 32(a0)2730; RV64IXQCCMP-FP-NEXT:    sw t5, 28(a0)2731; RV64IXQCCMP-FP-NEXT:    sw t4, 24(a0)2732; RV64IXQCCMP-FP-NEXT:    ld a1, -280(s0) # 8-byte Folded Reload2733; RV64IXQCCMP-FP-NEXT:    sw a1, 20(a0)2734; RV64IXQCCMP-FP-NEXT:    ld a1, -272(s0) # 8-byte Folded Reload2735; RV64IXQCCMP-FP-NEXT:    sw a1, 16(a0)2736; RV64IXQCCMP-FP-NEXT:    ld a1, -264(s0) # 8-byte Folded Reload2737; RV64IXQCCMP-FP-NEXT:    sw a1, 12(a0)2738; RV64IXQCCMP-FP-NEXT:    ld a1, -256(s0) # 8-byte Folded Reload2739; RV64IXQCCMP-FP-NEXT:    sw a1, 8(a0)2740; RV64IXQCCMP-FP-NEXT:    ld a1, -248(s0) # 8-byte Folded Reload2741; RV64IXQCCMP-FP-NEXT:    sw a1, 4(a0)2742; RV64IXQCCMP-FP-NEXT:    ld a1, -240(s0) # 8-byte Folded Reload2743; RV64IXQCCMP-FP-NEXT:    sw a1, 0(a0)2744; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 2882745; RV64IXQCCMP-FP-NEXT:    ld t0, 168(sp) # 8-byte Folded Reload2746; RV64IXQCCMP-FP-NEXT:    ld t1, 160(sp) # 8-byte Folded Reload2747; RV64IXQCCMP-FP-NEXT:    ld t2, 152(sp) # 8-byte Folded Reload2748; RV64IXQCCMP-FP-NEXT:    ld a0, 144(sp) # 8-byte Folded Reload2749; RV64IXQCCMP-FP-NEXT:    ld a1, 136(sp) # 8-byte Folded Reload2750; RV64IXQCCMP-FP-NEXT:    ld a2, 128(sp) # 8-byte Folded Reload2751; RV64IXQCCMP-FP-NEXT:    ld a3, 120(sp) # 8-byte Folded Reload2752; RV64IXQCCMP-FP-NEXT:    ld a4, 112(sp) # 8-byte Folded Reload2753; RV64IXQCCMP-FP-NEXT:    ld a5, 104(sp) # 8-byte Folded Reload2754; RV64IXQCCMP-FP-NEXT:    ld a6, 96(sp) # 8-byte Folded Reload2755; RV64IXQCCMP-FP-NEXT:    ld a7, 88(sp) # 8-byte Folded Reload2756; RV64IXQCCMP-FP-NEXT:    ld t3, 80(sp) # 8-byte Folded Reload2757; RV64IXQCCMP-FP-NEXT:    ld t4, 72(sp) # 8-byte Folded Reload2758; RV64IXQCCMP-FP-NEXT:    ld t5, 64(sp) # 8-byte Folded Reload2759; RV64IXQCCMP-FP-NEXT:    ld t6, 56(sp) # 8-byte Folded Reload2760; RV64IXQCCMP-FP-NEXT:    .cfi_restore t02761; RV64IXQCCMP-FP-NEXT:    .cfi_restore t12762; RV64IXQCCMP-FP-NEXT:    .cfi_restore t22763; RV64IXQCCMP-FP-NEXT:    .cfi_restore a02764; RV64IXQCCMP-FP-NEXT:    .cfi_restore a12765; RV64IXQCCMP-FP-NEXT:    .cfi_restore a22766; RV64IXQCCMP-FP-NEXT:    .cfi_restore a32767; RV64IXQCCMP-FP-NEXT:    .cfi_restore a42768; RV64IXQCCMP-FP-NEXT:    .cfi_restore a52769; RV64IXQCCMP-FP-NEXT:    .cfi_restore a62770; RV64IXQCCMP-FP-NEXT:    .cfi_restore a72771; RV64IXQCCMP-FP-NEXT:    .cfi_restore t32772; RV64IXQCCMP-FP-NEXT:    .cfi_restore t42773; RV64IXQCCMP-FP-NEXT:    .cfi_restore t52774; RV64IXQCCMP-FP-NEXT:    .cfi_restore t62775; RV64IXQCCMP-FP-NEXT:    addi sp, sp, 1282776; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 1602777; RV64IXQCCMP-FP-NEXT:    qc.cm.pop {ra, s0-s11}, 1602778; RV64IXQCCMP-FP-NEXT:    .cfi_restore ra2779; RV64IXQCCMP-FP-NEXT:    .cfi_restore s02780; RV64IXQCCMP-FP-NEXT:    .cfi_restore s12781; RV64IXQCCMP-FP-NEXT:    .cfi_restore s22782; RV64IXQCCMP-FP-NEXT:    .cfi_restore s32783; RV64IXQCCMP-FP-NEXT:    .cfi_restore s42784; RV64IXQCCMP-FP-NEXT:    .cfi_restore s52785; RV64IXQCCMP-FP-NEXT:    .cfi_restore s62786; RV64IXQCCMP-FP-NEXT:    .cfi_restore s72787; RV64IXQCCMP-FP-NEXT:    .cfi_restore s82788; RV64IXQCCMP-FP-NEXT:    .cfi_restore s92789; RV64IXQCCMP-FP-NEXT:    .cfi_restore s102790; RV64IXQCCMP-FP-NEXT:    .cfi_restore s112791; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 02792; RV64IXQCCMP-FP-NEXT:    mret2793;2794; RV32IXQCCMP-SR-LABEL: callee_with_irq:2795; RV32IXQCCMP-SR:       # %bb.0:2796; RV32IXQCCMP-SR-NEXT:    qc.cm.push {ra, s0-s11}, -1122797; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 1122798; RV32IXQCCMP-SR-NEXT:    .cfi_offset ra, -42799; RV32IXQCCMP-SR-NEXT:    .cfi_offset s0, -82800; RV32IXQCCMP-SR-NEXT:    .cfi_offset s1, -122801; RV32IXQCCMP-SR-NEXT:    .cfi_offset s2, -162802; RV32IXQCCMP-SR-NEXT:    .cfi_offset s3, -202803; RV32IXQCCMP-SR-NEXT:    .cfi_offset s4, -242804; RV32IXQCCMP-SR-NEXT:    .cfi_offset s5, -282805; RV32IXQCCMP-SR-NEXT:    .cfi_offset s6, -322806; RV32IXQCCMP-SR-NEXT:    .cfi_offset s7, -362807; RV32IXQCCMP-SR-NEXT:    .cfi_offset s8, -402808; RV32IXQCCMP-SR-NEXT:    .cfi_offset s9, -442809; RV32IXQCCMP-SR-NEXT:    .cfi_offset s10, -482810; RV32IXQCCMP-SR-NEXT:    .cfi_offset s11, -522811; RV32IXQCCMP-SR-NEXT:    addi sp, sp, -322812; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 1442813; RV32IXQCCMP-SR-NEXT:    sw t0, 76(sp) # 4-byte Folded Spill2814; RV32IXQCCMP-SR-NEXT:    sw t1, 72(sp) # 4-byte Folded Spill2815; RV32IXQCCMP-SR-NEXT:    sw t2, 68(sp) # 4-byte Folded Spill2816; RV32IXQCCMP-SR-NEXT:    sw a0, 64(sp) # 4-byte Folded Spill2817; RV32IXQCCMP-SR-NEXT:    sw a1, 60(sp) # 4-byte Folded Spill2818; RV32IXQCCMP-SR-NEXT:    sw a2, 56(sp) # 4-byte Folded Spill2819; RV32IXQCCMP-SR-NEXT:    sw a3, 52(sp) # 4-byte Folded Spill2820; RV32IXQCCMP-SR-NEXT:    sw a4, 48(sp) # 4-byte Folded Spill2821; RV32IXQCCMP-SR-NEXT:    sw a5, 44(sp) # 4-byte Folded Spill2822; RV32IXQCCMP-SR-NEXT:    sw a6, 40(sp) # 4-byte Folded Spill2823; RV32IXQCCMP-SR-NEXT:    sw a7, 36(sp) # 4-byte Folded Spill2824; RV32IXQCCMP-SR-NEXT:    sw t3, 32(sp) # 4-byte Folded Spill2825; RV32IXQCCMP-SR-NEXT:    sw t4, 28(sp) # 4-byte Folded Spill2826; RV32IXQCCMP-SR-NEXT:    sw t5, 24(sp) # 4-byte Folded Spill2827; RV32IXQCCMP-SR-NEXT:    sw t6, 20(sp) # 4-byte Folded Spill2828; RV32IXQCCMP-SR-NEXT:    .cfi_offset t0, -682829; RV32IXQCCMP-SR-NEXT:    .cfi_offset t1, -722830; RV32IXQCCMP-SR-NEXT:    .cfi_offset t2, -762831; RV32IXQCCMP-SR-NEXT:    .cfi_offset a0, -802832; RV32IXQCCMP-SR-NEXT:    .cfi_offset a1, -842833; RV32IXQCCMP-SR-NEXT:    .cfi_offset a2, -882834; RV32IXQCCMP-SR-NEXT:    .cfi_offset a3, -922835; RV32IXQCCMP-SR-NEXT:    .cfi_offset a4, -962836; RV32IXQCCMP-SR-NEXT:    .cfi_offset a5, -1002837; RV32IXQCCMP-SR-NEXT:    .cfi_offset a6, -1042838; RV32IXQCCMP-SR-NEXT:    .cfi_offset a7, -1082839; RV32IXQCCMP-SR-NEXT:    .cfi_offset t3, -1122840; RV32IXQCCMP-SR-NEXT:    .cfi_offset t4, -1162841; RV32IXQCCMP-SR-NEXT:    .cfi_offset t5, -1202842; RV32IXQCCMP-SR-NEXT:    .cfi_offset t6, -1242843; RV32IXQCCMP-SR-NEXT:    lui a0, %hi(var_test_irq)2844; RV32IXQCCMP-SR-NEXT:    addi a0, a0, %lo(var_test_irq)2845; RV32IXQCCMP-SR-NEXT:    lw a1, 0(a0)2846; RV32IXQCCMP-SR-NEXT:    sw a1, 16(sp) # 4-byte Folded Spill2847; RV32IXQCCMP-SR-NEXT:    lw a1, 4(a0)2848; RV32IXQCCMP-SR-NEXT:    sw a1, 12(sp) # 4-byte Folded Spill2849; RV32IXQCCMP-SR-NEXT:    lw a1, 8(a0)2850; RV32IXQCCMP-SR-NEXT:    sw a1, 8(sp) # 4-byte Folded Spill2851; RV32IXQCCMP-SR-NEXT:    lw a1, 12(a0)2852; RV32IXQCCMP-SR-NEXT:    sw a1, 4(sp) # 4-byte Folded Spill2853; RV32IXQCCMP-SR-NEXT:    lw a1, 16(a0)2854; RV32IXQCCMP-SR-NEXT:    sw a1, 0(sp) # 4-byte Folded Spill2855; RV32IXQCCMP-SR-NEXT:    lw t3, 20(a0)2856; RV32IXQCCMP-SR-NEXT:    lw t4, 24(a0)2857; RV32IXQCCMP-SR-NEXT:    lw t5, 28(a0)2858; RV32IXQCCMP-SR-NEXT:    lw t6, 32(a0)2859; RV32IXQCCMP-SR-NEXT:    lw s2, 36(a0)2860; RV32IXQCCMP-SR-NEXT:    lw s3, 40(a0)2861; RV32IXQCCMP-SR-NEXT:    lw s4, 44(a0)2862; RV32IXQCCMP-SR-NEXT:    lw s5, 48(a0)2863; RV32IXQCCMP-SR-NEXT:    lw s6, 52(a0)2864; RV32IXQCCMP-SR-NEXT:    lw s7, 56(a0)2865; RV32IXQCCMP-SR-NEXT:    lw s8, 60(a0)2866; RV32IXQCCMP-SR-NEXT:    lw s9, 64(a0)2867; RV32IXQCCMP-SR-NEXT:    lw s10, 68(a0)2868; RV32IXQCCMP-SR-NEXT:    lw s11, 72(a0)2869; RV32IXQCCMP-SR-NEXT:    lw ra, 76(a0)2870; RV32IXQCCMP-SR-NEXT:    lw t2, 80(a0)2871; RV32IXQCCMP-SR-NEXT:    lw s0, 84(a0)2872; RV32IXQCCMP-SR-NEXT:    lw s1, 88(a0)2873; RV32IXQCCMP-SR-NEXT:    lw t1, 92(a0)2874; RV32IXQCCMP-SR-NEXT:    lw t0, 112(a0)2875; RV32IXQCCMP-SR-NEXT:    lw a5, 116(a0)2876; RV32IXQCCMP-SR-NEXT:    lw a3, 120(a0)2877; RV32IXQCCMP-SR-NEXT:    lw a1, 124(a0)2878; RV32IXQCCMP-SR-NEXT:    lw a7, 96(a0)2879; RV32IXQCCMP-SR-NEXT:    lw a6, 100(a0)2880; RV32IXQCCMP-SR-NEXT:    lw a4, 104(a0)2881; RV32IXQCCMP-SR-NEXT:    lw a2, 108(a0)2882; RV32IXQCCMP-SR-NEXT:    sw a1, 124(a0)2883; RV32IXQCCMP-SR-NEXT:    sw a3, 120(a0)2884; RV32IXQCCMP-SR-NEXT:    sw a5, 116(a0)2885; RV32IXQCCMP-SR-NEXT:    sw t0, 112(a0)2886; RV32IXQCCMP-SR-NEXT:    sw a2, 108(a0)2887; RV32IXQCCMP-SR-NEXT:    sw a4, 104(a0)2888; RV32IXQCCMP-SR-NEXT:    sw a6, 100(a0)2889; RV32IXQCCMP-SR-NEXT:    sw a7, 96(a0)2890; RV32IXQCCMP-SR-NEXT:    sw t1, 92(a0)2891; RV32IXQCCMP-SR-NEXT:    sw s1, 88(a0)2892; RV32IXQCCMP-SR-NEXT:    sw s0, 84(a0)2893; RV32IXQCCMP-SR-NEXT:    sw t2, 80(a0)2894; RV32IXQCCMP-SR-NEXT:    sw ra, 76(a0)2895; RV32IXQCCMP-SR-NEXT:    sw s11, 72(a0)2896; RV32IXQCCMP-SR-NEXT:    sw s10, 68(a0)2897; RV32IXQCCMP-SR-NEXT:    sw s9, 64(a0)2898; RV32IXQCCMP-SR-NEXT:    sw s8, 60(a0)2899; RV32IXQCCMP-SR-NEXT:    sw s7, 56(a0)2900; RV32IXQCCMP-SR-NEXT:    sw s6, 52(a0)2901; RV32IXQCCMP-SR-NEXT:    sw s5, 48(a0)2902; RV32IXQCCMP-SR-NEXT:    sw s4, 44(a0)2903; RV32IXQCCMP-SR-NEXT:    sw s3, 40(a0)2904; RV32IXQCCMP-SR-NEXT:    sw s2, 36(a0)2905; RV32IXQCCMP-SR-NEXT:    sw t6, 32(a0)2906; RV32IXQCCMP-SR-NEXT:    sw t5, 28(a0)2907; RV32IXQCCMP-SR-NEXT:    sw t4, 24(a0)2908; RV32IXQCCMP-SR-NEXT:    sw t3, 20(a0)2909; RV32IXQCCMP-SR-NEXT:    lw a1, 0(sp) # 4-byte Folded Reload2910; RV32IXQCCMP-SR-NEXT:    sw a1, 16(a0)2911; RV32IXQCCMP-SR-NEXT:    lw a1, 4(sp) # 4-byte Folded Reload2912; RV32IXQCCMP-SR-NEXT:    sw a1, 12(a0)2913; RV32IXQCCMP-SR-NEXT:    lw a1, 8(sp) # 4-byte Folded Reload2914; RV32IXQCCMP-SR-NEXT:    sw a1, 8(a0)2915; RV32IXQCCMP-SR-NEXT:    lw a1, 12(sp) # 4-byte Folded Reload2916; RV32IXQCCMP-SR-NEXT:    sw a1, 4(a0)2917; RV32IXQCCMP-SR-NEXT:    lw a1, 16(sp) # 4-byte Folded Reload2918; RV32IXQCCMP-SR-NEXT:    sw a1, 0(a0)2919; RV32IXQCCMP-SR-NEXT:    lw t0, 76(sp) # 4-byte Folded Reload2920; RV32IXQCCMP-SR-NEXT:    lw t1, 72(sp) # 4-byte Folded Reload2921; RV32IXQCCMP-SR-NEXT:    lw t2, 68(sp) # 4-byte Folded Reload2922; RV32IXQCCMP-SR-NEXT:    lw a0, 64(sp) # 4-byte Folded Reload2923; RV32IXQCCMP-SR-NEXT:    lw a1, 60(sp) # 4-byte Folded Reload2924; RV32IXQCCMP-SR-NEXT:    lw a2, 56(sp) # 4-byte Folded Reload2925; RV32IXQCCMP-SR-NEXT:    lw a3, 52(sp) # 4-byte Folded Reload2926; RV32IXQCCMP-SR-NEXT:    lw a4, 48(sp) # 4-byte Folded Reload2927; RV32IXQCCMP-SR-NEXT:    lw a5, 44(sp) # 4-byte Folded Reload2928; RV32IXQCCMP-SR-NEXT:    lw a6, 40(sp) # 4-byte Folded Reload2929; RV32IXQCCMP-SR-NEXT:    lw a7, 36(sp) # 4-byte Folded Reload2930; RV32IXQCCMP-SR-NEXT:    lw t3, 32(sp) # 4-byte Folded Reload2931; RV32IXQCCMP-SR-NEXT:    lw t4, 28(sp) # 4-byte Folded Reload2932; RV32IXQCCMP-SR-NEXT:    lw t5, 24(sp) # 4-byte Folded Reload2933; RV32IXQCCMP-SR-NEXT:    lw t6, 20(sp) # 4-byte Folded Reload2934; RV32IXQCCMP-SR-NEXT:    .cfi_restore t02935; RV32IXQCCMP-SR-NEXT:    .cfi_restore t12936; RV32IXQCCMP-SR-NEXT:    .cfi_restore t22937; RV32IXQCCMP-SR-NEXT:    .cfi_restore a02938; RV32IXQCCMP-SR-NEXT:    .cfi_restore a12939; RV32IXQCCMP-SR-NEXT:    .cfi_restore a22940; RV32IXQCCMP-SR-NEXT:    .cfi_restore a32941; RV32IXQCCMP-SR-NEXT:    .cfi_restore a42942; RV32IXQCCMP-SR-NEXT:    .cfi_restore a52943; RV32IXQCCMP-SR-NEXT:    .cfi_restore a62944; RV32IXQCCMP-SR-NEXT:    .cfi_restore a72945; RV32IXQCCMP-SR-NEXT:    .cfi_restore t32946; RV32IXQCCMP-SR-NEXT:    .cfi_restore t42947; RV32IXQCCMP-SR-NEXT:    .cfi_restore t52948; RV32IXQCCMP-SR-NEXT:    .cfi_restore t62949; RV32IXQCCMP-SR-NEXT:    addi sp, sp, 322950; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 1122951; RV32IXQCCMP-SR-NEXT:    qc.cm.pop {ra, s0-s11}, 1122952; RV32IXQCCMP-SR-NEXT:    .cfi_restore ra2953; RV32IXQCCMP-SR-NEXT:    .cfi_restore s02954; RV32IXQCCMP-SR-NEXT:    .cfi_restore s12955; RV32IXQCCMP-SR-NEXT:    .cfi_restore s22956; RV32IXQCCMP-SR-NEXT:    .cfi_restore s32957; RV32IXQCCMP-SR-NEXT:    .cfi_restore s42958; RV32IXQCCMP-SR-NEXT:    .cfi_restore s52959; RV32IXQCCMP-SR-NEXT:    .cfi_restore s62960; RV32IXQCCMP-SR-NEXT:    .cfi_restore s72961; RV32IXQCCMP-SR-NEXT:    .cfi_restore s82962; RV32IXQCCMP-SR-NEXT:    .cfi_restore s92963; RV32IXQCCMP-SR-NEXT:    .cfi_restore s102964; RV32IXQCCMP-SR-NEXT:    .cfi_restore s112965; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 02966; RV32IXQCCMP-SR-NEXT:    mret2967;2968; RV64IXQCCMP-SR-LABEL: callee_with_irq:2969; RV64IXQCCMP-SR:       # %bb.0:2970; RV64IXQCCMP-SR-NEXT:    qc.cm.push {ra, s0-s11}, -1602971; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 1602972; RV64IXQCCMP-SR-NEXT:    .cfi_offset ra, -82973; RV64IXQCCMP-SR-NEXT:    .cfi_offset s0, -162974; RV64IXQCCMP-SR-NEXT:    .cfi_offset s1, -242975; RV64IXQCCMP-SR-NEXT:    .cfi_offset s2, -322976; RV64IXQCCMP-SR-NEXT:    .cfi_offset s3, -402977; RV64IXQCCMP-SR-NEXT:    .cfi_offset s4, -482978; RV64IXQCCMP-SR-NEXT:    .cfi_offset s5, -562979; RV64IXQCCMP-SR-NEXT:    .cfi_offset s6, -642980; RV64IXQCCMP-SR-NEXT:    .cfi_offset s7, -722981; RV64IXQCCMP-SR-NEXT:    .cfi_offset s8, -802982; RV64IXQCCMP-SR-NEXT:    .cfi_offset s9, -882983; RV64IXQCCMP-SR-NEXT:    .cfi_offset s10, -962984; RV64IXQCCMP-SR-NEXT:    .cfi_offset s11, -1042985; RV64IXQCCMP-SR-NEXT:    addi sp, sp, -1122986; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 2722987; RV64IXQCCMP-SR-NEXT:    sd t0, 152(sp) # 8-byte Folded Spill2988; RV64IXQCCMP-SR-NEXT:    sd t1, 144(sp) # 8-byte Folded Spill2989; RV64IXQCCMP-SR-NEXT:    sd t2, 136(sp) # 8-byte Folded Spill2990; RV64IXQCCMP-SR-NEXT:    sd a0, 128(sp) # 8-byte Folded Spill2991; RV64IXQCCMP-SR-NEXT:    sd a1, 120(sp) # 8-byte Folded Spill2992; RV64IXQCCMP-SR-NEXT:    sd a2, 112(sp) # 8-byte Folded Spill2993; RV64IXQCCMP-SR-NEXT:    sd a3, 104(sp) # 8-byte Folded Spill2994; RV64IXQCCMP-SR-NEXT:    sd a4, 96(sp) # 8-byte Folded Spill2995; RV64IXQCCMP-SR-NEXT:    sd a5, 88(sp) # 8-byte Folded Spill2996; RV64IXQCCMP-SR-NEXT:    sd a6, 80(sp) # 8-byte Folded Spill2997; RV64IXQCCMP-SR-NEXT:    sd a7, 72(sp) # 8-byte Folded Spill2998; RV64IXQCCMP-SR-NEXT:    sd t3, 64(sp) # 8-byte Folded Spill2999; RV64IXQCCMP-SR-NEXT:    sd t4, 56(sp) # 8-byte Folded Spill3000; RV64IXQCCMP-SR-NEXT:    sd t5, 48(sp) # 8-byte Folded Spill3001; RV64IXQCCMP-SR-NEXT:    sd t6, 40(sp) # 8-byte Folded Spill3002; RV64IXQCCMP-SR-NEXT:    .cfi_offset t0, -1203003; RV64IXQCCMP-SR-NEXT:    .cfi_offset t1, -1283004; RV64IXQCCMP-SR-NEXT:    .cfi_offset t2, -1363005; RV64IXQCCMP-SR-NEXT:    .cfi_offset a0, -1443006; RV64IXQCCMP-SR-NEXT:    .cfi_offset a1, -1523007; RV64IXQCCMP-SR-NEXT:    .cfi_offset a2, -1603008; RV64IXQCCMP-SR-NEXT:    .cfi_offset a3, -1683009; RV64IXQCCMP-SR-NEXT:    .cfi_offset a4, -1763010; RV64IXQCCMP-SR-NEXT:    .cfi_offset a5, -1843011; RV64IXQCCMP-SR-NEXT:    .cfi_offset a6, -1923012; RV64IXQCCMP-SR-NEXT:    .cfi_offset a7, -2003013; RV64IXQCCMP-SR-NEXT:    .cfi_offset t3, -2083014; RV64IXQCCMP-SR-NEXT:    .cfi_offset t4, -2163015; RV64IXQCCMP-SR-NEXT:    .cfi_offset t5, -2243016; RV64IXQCCMP-SR-NEXT:    .cfi_offset t6, -2323017; RV64IXQCCMP-SR-NEXT:    lui a0, %hi(var_test_irq)3018; RV64IXQCCMP-SR-NEXT:    addi a0, a0, %lo(var_test_irq)3019; RV64IXQCCMP-SR-NEXT:    lw a1, 0(a0)3020; RV64IXQCCMP-SR-NEXT:    sd a1, 32(sp) # 8-byte Folded Spill3021; RV64IXQCCMP-SR-NEXT:    lw a1, 4(a0)3022; RV64IXQCCMP-SR-NEXT:    sd a1, 24(sp) # 8-byte Folded Spill3023; RV64IXQCCMP-SR-NEXT:    lw a1, 8(a0)3024; RV64IXQCCMP-SR-NEXT:    sd a1, 16(sp) # 8-byte Folded Spill3025; RV64IXQCCMP-SR-NEXT:    lw a1, 12(a0)3026; RV64IXQCCMP-SR-NEXT:    sd a1, 8(sp) # 8-byte Folded Spill3027; RV64IXQCCMP-SR-NEXT:    lw a1, 16(a0)3028; RV64IXQCCMP-SR-NEXT:    sd a1, 0(sp) # 8-byte Folded Spill3029; RV64IXQCCMP-SR-NEXT:    lw t3, 20(a0)3030; RV64IXQCCMP-SR-NEXT:    lw t4, 24(a0)3031; RV64IXQCCMP-SR-NEXT:    lw t5, 28(a0)3032; RV64IXQCCMP-SR-NEXT:    lw t6, 32(a0)3033; RV64IXQCCMP-SR-NEXT:    lw s2, 36(a0)3034; RV64IXQCCMP-SR-NEXT:    lw s3, 40(a0)3035; RV64IXQCCMP-SR-NEXT:    lw s4, 44(a0)3036; RV64IXQCCMP-SR-NEXT:    lw s5, 48(a0)3037; RV64IXQCCMP-SR-NEXT:    lw s6, 52(a0)3038; RV64IXQCCMP-SR-NEXT:    lw s7, 56(a0)3039; RV64IXQCCMP-SR-NEXT:    lw s8, 60(a0)3040; RV64IXQCCMP-SR-NEXT:    lw s9, 64(a0)3041; RV64IXQCCMP-SR-NEXT:    lw s10, 68(a0)3042; RV64IXQCCMP-SR-NEXT:    lw s11, 72(a0)3043; RV64IXQCCMP-SR-NEXT:    lw ra, 76(a0)3044; RV64IXQCCMP-SR-NEXT:    lw t2, 80(a0)3045; RV64IXQCCMP-SR-NEXT:    lw s0, 84(a0)3046; RV64IXQCCMP-SR-NEXT:    lw s1, 88(a0)3047; RV64IXQCCMP-SR-NEXT:    lw t1, 92(a0)3048; RV64IXQCCMP-SR-NEXT:    lw t0, 112(a0)3049; RV64IXQCCMP-SR-NEXT:    lw a5, 116(a0)3050; RV64IXQCCMP-SR-NEXT:    lw a3, 120(a0)3051; RV64IXQCCMP-SR-NEXT:    lw a1, 124(a0)3052; RV64IXQCCMP-SR-NEXT:    lw a7, 96(a0)3053; RV64IXQCCMP-SR-NEXT:    lw a6, 100(a0)3054; RV64IXQCCMP-SR-NEXT:    lw a4, 104(a0)3055; RV64IXQCCMP-SR-NEXT:    lw a2, 108(a0)3056; RV64IXQCCMP-SR-NEXT:    sw a1, 124(a0)3057; RV64IXQCCMP-SR-NEXT:    sw a3, 120(a0)3058; RV64IXQCCMP-SR-NEXT:    sw a5, 116(a0)3059; RV64IXQCCMP-SR-NEXT:    sw t0, 112(a0)3060; RV64IXQCCMP-SR-NEXT:    sw a2, 108(a0)3061; RV64IXQCCMP-SR-NEXT:    sw a4, 104(a0)3062; RV64IXQCCMP-SR-NEXT:    sw a6, 100(a0)3063; RV64IXQCCMP-SR-NEXT:    sw a7, 96(a0)3064; RV64IXQCCMP-SR-NEXT:    sw t1, 92(a0)3065; RV64IXQCCMP-SR-NEXT:    sw s1, 88(a0)3066; RV64IXQCCMP-SR-NEXT:    sw s0, 84(a0)3067; RV64IXQCCMP-SR-NEXT:    sw t2, 80(a0)3068; RV64IXQCCMP-SR-NEXT:    sw ra, 76(a0)3069; RV64IXQCCMP-SR-NEXT:    sw s11, 72(a0)3070; RV64IXQCCMP-SR-NEXT:    sw s10, 68(a0)3071; RV64IXQCCMP-SR-NEXT:    sw s9, 64(a0)3072; RV64IXQCCMP-SR-NEXT:    sw s8, 60(a0)3073; RV64IXQCCMP-SR-NEXT:    sw s7, 56(a0)3074; RV64IXQCCMP-SR-NEXT:    sw s6, 52(a0)3075; RV64IXQCCMP-SR-NEXT:    sw s5, 48(a0)3076; RV64IXQCCMP-SR-NEXT:    sw s4, 44(a0)3077; RV64IXQCCMP-SR-NEXT:    sw s3, 40(a0)3078; RV64IXQCCMP-SR-NEXT:    sw s2, 36(a0)3079; RV64IXQCCMP-SR-NEXT:    sw t6, 32(a0)3080; RV64IXQCCMP-SR-NEXT:    sw t5, 28(a0)3081; RV64IXQCCMP-SR-NEXT:    sw t4, 24(a0)3082; RV64IXQCCMP-SR-NEXT:    sw t3, 20(a0)3083; RV64IXQCCMP-SR-NEXT:    ld a1, 0(sp) # 8-byte Folded Reload3084; RV64IXQCCMP-SR-NEXT:    sw a1, 16(a0)3085; RV64IXQCCMP-SR-NEXT:    ld a1, 8(sp) # 8-byte Folded Reload3086; RV64IXQCCMP-SR-NEXT:    sw a1, 12(a0)3087; RV64IXQCCMP-SR-NEXT:    ld a1, 16(sp) # 8-byte Folded Reload3088; RV64IXQCCMP-SR-NEXT:    sw a1, 8(a0)3089; RV64IXQCCMP-SR-NEXT:    ld a1, 24(sp) # 8-byte Folded Reload3090; RV64IXQCCMP-SR-NEXT:    sw a1, 4(a0)3091; RV64IXQCCMP-SR-NEXT:    ld a1, 32(sp) # 8-byte Folded Reload3092; RV64IXQCCMP-SR-NEXT:    sw a1, 0(a0)3093; RV64IXQCCMP-SR-NEXT:    ld t0, 152(sp) # 8-byte Folded Reload3094; RV64IXQCCMP-SR-NEXT:    ld t1, 144(sp) # 8-byte Folded Reload3095; RV64IXQCCMP-SR-NEXT:    ld t2, 136(sp) # 8-byte Folded Reload3096; RV64IXQCCMP-SR-NEXT:    ld a0, 128(sp) # 8-byte Folded Reload3097; RV64IXQCCMP-SR-NEXT:    ld a1, 120(sp) # 8-byte Folded Reload3098; RV64IXQCCMP-SR-NEXT:    ld a2, 112(sp) # 8-byte Folded Reload3099; RV64IXQCCMP-SR-NEXT:    ld a3, 104(sp) # 8-byte Folded Reload3100; RV64IXQCCMP-SR-NEXT:    ld a4, 96(sp) # 8-byte Folded Reload3101; RV64IXQCCMP-SR-NEXT:    ld a5, 88(sp) # 8-byte Folded Reload3102; RV64IXQCCMP-SR-NEXT:    ld a6, 80(sp) # 8-byte Folded Reload3103; RV64IXQCCMP-SR-NEXT:    ld a7, 72(sp) # 8-byte Folded Reload3104; RV64IXQCCMP-SR-NEXT:    ld t3, 64(sp) # 8-byte Folded Reload3105; RV64IXQCCMP-SR-NEXT:    ld t4, 56(sp) # 8-byte Folded Reload3106; RV64IXQCCMP-SR-NEXT:    ld t5, 48(sp) # 8-byte Folded Reload3107; RV64IXQCCMP-SR-NEXT:    ld t6, 40(sp) # 8-byte Folded Reload3108; RV64IXQCCMP-SR-NEXT:    .cfi_restore t03109; RV64IXQCCMP-SR-NEXT:    .cfi_restore t13110; RV64IXQCCMP-SR-NEXT:    .cfi_restore t23111; RV64IXQCCMP-SR-NEXT:    .cfi_restore a03112; RV64IXQCCMP-SR-NEXT:    .cfi_restore a13113; RV64IXQCCMP-SR-NEXT:    .cfi_restore a23114; RV64IXQCCMP-SR-NEXT:    .cfi_restore a33115; RV64IXQCCMP-SR-NEXT:    .cfi_restore a43116; RV64IXQCCMP-SR-NEXT:    .cfi_restore a53117; RV64IXQCCMP-SR-NEXT:    .cfi_restore a63118; RV64IXQCCMP-SR-NEXT:    .cfi_restore a73119; RV64IXQCCMP-SR-NEXT:    .cfi_restore t33120; RV64IXQCCMP-SR-NEXT:    .cfi_restore t43121; RV64IXQCCMP-SR-NEXT:    .cfi_restore t53122; RV64IXQCCMP-SR-NEXT:    .cfi_restore t63123; RV64IXQCCMP-SR-NEXT:    addi sp, sp, 1123124; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 1603125; RV64IXQCCMP-SR-NEXT:    qc.cm.pop {ra, s0-s11}, 1603126; RV64IXQCCMP-SR-NEXT:    .cfi_restore ra3127; RV64IXQCCMP-SR-NEXT:    .cfi_restore s03128; RV64IXQCCMP-SR-NEXT:    .cfi_restore s13129; RV64IXQCCMP-SR-NEXT:    .cfi_restore s23130; RV64IXQCCMP-SR-NEXT:    .cfi_restore s33131; RV64IXQCCMP-SR-NEXT:    .cfi_restore s43132; RV64IXQCCMP-SR-NEXT:    .cfi_restore s53133; RV64IXQCCMP-SR-NEXT:    .cfi_restore s63134; RV64IXQCCMP-SR-NEXT:    .cfi_restore s73135; RV64IXQCCMP-SR-NEXT:    .cfi_restore s83136; RV64IXQCCMP-SR-NEXT:    .cfi_restore s93137; RV64IXQCCMP-SR-NEXT:    .cfi_restore s103138; RV64IXQCCMP-SR-NEXT:    .cfi_restore s113139; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 03140; RV64IXQCCMP-SR-NEXT:    mret3141  %val = load [32 x i32], ptr @var_test_irq3142  store volatile [32 x i32] %val, ptr @var_test_irq3143  ret void3144}3145 3146define void @callee_no_irq() {3147; RV32IXQCCMP-LABEL: callee_no_irq:3148; RV32IXQCCMP:       # %bb.0:3149; RV32IXQCCMP-NEXT:    qc.cm.push {ra, s0-s11}, -963150; RV32IXQCCMP-NEXT:    .cfi_def_cfa_offset 963151; RV32IXQCCMP-NEXT:    .cfi_offset ra, -43152; RV32IXQCCMP-NEXT:    .cfi_offset s0, -83153; RV32IXQCCMP-NEXT:    .cfi_offset s1, -123154; RV32IXQCCMP-NEXT:    .cfi_offset s2, -163155; RV32IXQCCMP-NEXT:    .cfi_offset s3, -203156; RV32IXQCCMP-NEXT:    .cfi_offset s4, -243157; RV32IXQCCMP-NEXT:    .cfi_offset s5, -283158; RV32IXQCCMP-NEXT:    .cfi_offset s6, -323159; RV32IXQCCMP-NEXT:    .cfi_offset s7, -363160; RV32IXQCCMP-NEXT:    .cfi_offset s8, -403161; RV32IXQCCMP-NEXT:    .cfi_offset s9, -443162; RV32IXQCCMP-NEXT:    .cfi_offset s10, -483163; RV32IXQCCMP-NEXT:    .cfi_offset s11, -523164; RV32IXQCCMP-NEXT:    lui a0, %hi(var_test_irq)3165; RV32IXQCCMP-NEXT:    addi a0, a0, %lo(var_test_irq)3166; RV32IXQCCMP-NEXT:    lw a1, 0(a0)3167; RV32IXQCCMP-NEXT:    sw a1, 28(sp) # 4-byte Folded Spill3168; RV32IXQCCMP-NEXT:    lw a1, 4(a0)3169; RV32IXQCCMP-NEXT:    sw a1, 24(sp) # 4-byte Folded Spill3170; RV32IXQCCMP-NEXT:    lw a1, 8(a0)3171; RV32IXQCCMP-NEXT:    sw a1, 20(sp) # 4-byte Folded Spill3172; RV32IXQCCMP-NEXT:    lw a1, 12(a0)3173; RV32IXQCCMP-NEXT:    sw a1, 16(sp) # 4-byte Folded Spill3174; RV32IXQCCMP-NEXT:    lw a1, 16(a0)3175; RV32IXQCCMP-NEXT:    sw a1, 12(sp) # 4-byte Folded Spill3176; RV32IXQCCMP-NEXT:    lw t3, 20(a0)3177; RV32IXQCCMP-NEXT:    lw t4, 24(a0)3178; RV32IXQCCMP-NEXT:    lw t5, 28(a0)3179; RV32IXQCCMP-NEXT:    lw t6, 32(a0)3180; RV32IXQCCMP-NEXT:    lw s2, 36(a0)3181; RV32IXQCCMP-NEXT:    lw s3, 40(a0)3182; RV32IXQCCMP-NEXT:    lw s4, 44(a0)3183; RV32IXQCCMP-NEXT:    lw s5, 48(a0)3184; RV32IXQCCMP-NEXT:    lw s6, 52(a0)3185; RV32IXQCCMP-NEXT:    lw s7, 56(a0)3186; RV32IXQCCMP-NEXT:    lw s8, 60(a0)3187; RV32IXQCCMP-NEXT:    lw s9, 64(a0)3188; RV32IXQCCMP-NEXT:    lw s10, 68(a0)3189; RV32IXQCCMP-NEXT:    lw s11, 72(a0)3190; RV32IXQCCMP-NEXT:    lw ra, 76(a0)3191; RV32IXQCCMP-NEXT:    lw t2, 80(a0)3192; RV32IXQCCMP-NEXT:    lw s0, 84(a0)3193; RV32IXQCCMP-NEXT:    lw s1, 88(a0)3194; RV32IXQCCMP-NEXT:    lw t1, 92(a0)3195; RV32IXQCCMP-NEXT:    lw t0, 112(a0)3196; RV32IXQCCMP-NEXT:    lw a5, 116(a0)3197; RV32IXQCCMP-NEXT:    lw a3, 120(a0)3198; RV32IXQCCMP-NEXT:    lw a1, 124(a0)3199; RV32IXQCCMP-NEXT:    lw a7, 96(a0)3200; RV32IXQCCMP-NEXT:    lw a6, 100(a0)3201; RV32IXQCCMP-NEXT:    lw a4, 104(a0)3202; RV32IXQCCMP-NEXT:    lw a2, 108(a0)3203; RV32IXQCCMP-NEXT:    sw a1, 124(a0)3204; RV32IXQCCMP-NEXT:    sw a3, 120(a0)3205; RV32IXQCCMP-NEXT:    sw a5, 116(a0)3206; RV32IXQCCMP-NEXT:    sw t0, 112(a0)3207; RV32IXQCCMP-NEXT:    sw a2, 108(a0)3208; RV32IXQCCMP-NEXT:    sw a4, 104(a0)3209; RV32IXQCCMP-NEXT:    sw a6, 100(a0)3210; RV32IXQCCMP-NEXT:    sw a7, 96(a0)3211; RV32IXQCCMP-NEXT:    sw t1, 92(a0)3212; RV32IXQCCMP-NEXT:    sw s1, 88(a0)3213; RV32IXQCCMP-NEXT:    sw s0, 84(a0)3214; RV32IXQCCMP-NEXT:    sw t2, 80(a0)3215; RV32IXQCCMP-NEXT:    sw ra, 76(a0)3216; RV32IXQCCMP-NEXT:    sw s11, 72(a0)3217; RV32IXQCCMP-NEXT:    sw s10, 68(a0)3218; RV32IXQCCMP-NEXT:    sw s9, 64(a0)3219; RV32IXQCCMP-NEXT:    sw s8, 60(a0)3220; RV32IXQCCMP-NEXT:    sw s7, 56(a0)3221; RV32IXQCCMP-NEXT:    sw s6, 52(a0)3222; RV32IXQCCMP-NEXT:    sw s5, 48(a0)3223; RV32IXQCCMP-NEXT:    sw s4, 44(a0)3224; RV32IXQCCMP-NEXT:    sw s3, 40(a0)3225; RV32IXQCCMP-NEXT:    sw s2, 36(a0)3226; RV32IXQCCMP-NEXT:    sw t6, 32(a0)3227; RV32IXQCCMP-NEXT:    sw t5, 28(a0)3228; RV32IXQCCMP-NEXT:    sw t4, 24(a0)3229; RV32IXQCCMP-NEXT:    sw t3, 20(a0)3230; RV32IXQCCMP-NEXT:    lw a1, 12(sp) # 4-byte Folded Reload3231; RV32IXQCCMP-NEXT:    sw a1, 16(a0)3232; RV32IXQCCMP-NEXT:    lw a1, 16(sp) # 4-byte Folded Reload3233; RV32IXQCCMP-NEXT:    sw a1, 12(a0)3234; RV32IXQCCMP-NEXT:    lw a1, 20(sp) # 4-byte Folded Reload3235; RV32IXQCCMP-NEXT:    sw a1, 8(a0)3236; RV32IXQCCMP-NEXT:    lw a1, 24(sp) # 4-byte Folded Reload3237; RV32IXQCCMP-NEXT:    sw a1, 4(a0)3238; RV32IXQCCMP-NEXT:    lw a1, 28(sp) # 4-byte Folded Reload3239; RV32IXQCCMP-NEXT:    sw a1, 0(a0)3240; RV32IXQCCMP-NEXT:    qc.cm.popret {ra, s0-s11}, 963241;3242; RV64IXQCCMP-LABEL: callee_no_irq:3243; RV64IXQCCMP:       # %bb.0:3244; RV64IXQCCMP-NEXT:    qc.cm.push {ra, s0-s11}, -1603245; RV64IXQCCMP-NEXT:    .cfi_def_cfa_offset 1603246; RV64IXQCCMP-NEXT:    .cfi_offset ra, -83247; RV64IXQCCMP-NEXT:    .cfi_offset s0, -163248; RV64IXQCCMP-NEXT:    .cfi_offset s1, -243249; RV64IXQCCMP-NEXT:    .cfi_offset s2, -323250; RV64IXQCCMP-NEXT:    .cfi_offset s3, -403251; RV64IXQCCMP-NEXT:    .cfi_offset s4, -483252; RV64IXQCCMP-NEXT:    .cfi_offset s5, -563253; RV64IXQCCMP-NEXT:    .cfi_offset s6, -643254; RV64IXQCCMP-NEXT:    .cfi_offset s7, -723255; RV64IXQCCMP-NEXT:    .cfi_offset s8, -803256; RV64IXQCCMP-NEXT:    .cfi_offset s9, -883257; RV64IXQCCMP-NEXT:    .cfi_offset s10, -963258; RV64IXQCCMP-NEXT:    .cfi_offset s11, -1043259; RV64IXQCCMP-NEXT:    lui a0, %hi(var_test_irq)3260; RV64IXQCCMP-NEXT:    addi a0, a0, %lo(var_test_irq)3261; RV64IXQCCMP-NEXT:    lw a1, 0(a0)3262; RV64IXQCCMP-NEXT:    sd a1, 40(sp) # 8-byte Folded Spill3263; RV64IXQCCMP-NEXT:    lw a1, 4(a0)3264; RV64IXQCCMP-NEXT:    sd a1, 32(sp) # 8-byte Folded Spill3265; RV64IXQCCMP-NEXT:    lw a1, 8(a0)3266; RV64IXQCCMP-NEXT:    sd a1, 24(sp) # 8-byte Folded Spill3267; RV64IXQCCMP-NEXT:    lw a1, 12(a0)3268; RV64IXQCCMP-NEXT:    sd a1, 16(sp) # 8-byte Folded Spill3269; RV64IXQCCMP-NEXT:    lw a1, 16(a0)3270; RV64IXQCCMP-NEXT:    sd a1, 8(sp) # 8-byte Folded Spill3271; RV64IXQCCMP-NEXT:    lw t3, 20(a0)3272; RV64IXQCCMP-NEXT:    lw t4, 24(a0)3273; RV64IXQCCMP-NEXT:    lw t5, 28(a0)3274; RV64IXQCCMP-NEXT:    lw t6, 32(a0)3275; RV64IXQCCMP-NEXT:    lw s2, 36(a0)3276; RV64IXQCCMP-NEXT:    lw s3, 40(a0)3277; RV64IXQCCMP-NEXT:    lw s4, 44(a0)3278; RV64IXQCCMP-NEXT:    lw s5, 48(a0)3279; RV64IXQCCMP-NEXT:    lw s6, 52(a0)3280; RV64IXQCCMP-NEXT:    lw s7, 56(a0)3281; RV64IXQCCMP-NEXT:    lw s8, 60(a0)3282; RV64IXQCCMP-NEXT:    lw s9, 64(a0)3283; RV64IXQCCMP-NEXT:    lw s10, 68(a0)3284; RV64IXQCCMP-NEXT:    lw s11, 72(a0)3285; RV64IXQCCMP-NEXT:    lw ra, 76(a0)3286; RV64IXQCCMP-NEXT:    lw t2, 80(a0)3287; RV64IXQCCMP-NEXT:    lw s0, 84(a0)3288; RV64IXQCCMP-NEXT:    lw s1, 88(a0)3289; RV64IXQCCMP-NEXT:    lw t1, 92(a0)3290; RV64IXQCCMP-NEXT:    lw t0, 112(a0)3291; RV64IXQCCMP-NEXT:    lw a5, 116(a0)3292; RV64IXQCCMP-NEXT:    lw a3, 120(a0)3293; RV64IXQCCMP-NEXT:    lw a1, 124(a0)3294; RV64IXQCCMP-NEXT:    lw a7, 96(a0)3295; RV64IXQCCMP-NEXT:    lw a6, 100(a0)3296; RV64IXQCCMP-NEXT:    lw a4, 104(a0)3297; RV64IXQCCMP-NEXT:    lw a2, 108(a0)3298; RV64IXQCCMP-NEXT:    sw a1, 124(a0)3299; RV64IXQCCMP-NEXT:    sw a3, 120(a0)3300; RV64IXQCCMP-NEXT:    sw a5, 116(a0)3301; RV64IXQCCMP-NEXT:    sw t0, 112(a0)3302; RV64IXQCCMP-NEXT:    sw a2, 108(a0)3303; RV64IXQCCMP-NEXT:    sw a4, 104(a0)3304; RV64IXQCCMP-NEXT:    sw a6, 100(a0)3305; RV64IXQCCMP-NEXT:    sw a7, 96(a0)3306; RV64IXQCCMP-NEXT:    sw t1, 92(a0)3307; RV64IXQCCMP-NEXT:    sw s1, 88(a0)3308; RV64IXQCCMP-NEXT:    sw s0, 84(a0)3309; RV64IXQCCMP-NEXT:    sw t2, 80(a0)3310; RV64IXQCCMP-NEXT:    sw ra, 76(a0)3311; RV64IXQCCMP-NEXT:    sw s11, 72(a0)3312; RV64IXQCCMP-NEXT:    sw s10, 68(a0)3313; RV64IXQCCMP-NEXT:    sw s9, 64(a0)3314; RV64IXQCCMP-NEXT:    sw s8, 60(a0)3315; RV64IXQCCMP-NEXT:    sw s7, 56(a0)3316; RV64IXQCCMP-NEXT:    sw s6, 52(a0)3317; RV64IXQCCMP-NEXT:    sw s5, 48(a0)3318; RV64IXQCCMP-NEXT:    sw s4, 44(a0)3319; RV64IXQCCMP-NEXT:    sw s3, 40(a0)3320; RV64IXQCCMP-NEXT:    sw s2, 36(a0)3321; RV64IXQCCMP-NEXT:    sw t6, 32(a0)3322; RV64IXQCCMP-NEXT:    sw t5, 28(a0)3323; RV64IXQCCMP-NEXT:    sw t4, 24(a0)3324; RV64IXQCCMP-NEXT:    sw t3, 20(a0)3325; RV64IXQCCMP-NEXT:    ld a1, 8(sp) # 8-byte Folded Reload3326; RV64IXQCCMP-NEXT:    sw a1, 16(a0)3327; RV64IXQCCMP-NEXT:    ld a1, 16(sp) # 8-byte Folded Reload3328; RV64IXQCCMP-NEXT:    sw a1, 12(a0)3329; RV64IXQCCMP-NEXT:    ld a1, 24(sp) # 8-byte Folded Reload3330; RV64IXQCCMP-NEXT:    sw a1, 8(a0)3331; RV64IXQCCMP-NEXT:    ld a1, 32(sp) # 8-byte Folded Reload3332; RV64IXQCCMP-NEXT:    sw a1, 4(a0)3333; RV64IXQCCMP-NEXT:    ld a1, 40(sp) # 8-byte Folded Reload3334; RV64IXQCCMP-NEXT:    sw a1, 0(a0)3335; RV64IXQCCMP-NEXT:    qc.cm.popret {ra, s0-s11}, 1603336;3337; RV32IXQCCMP-FP-LABEL: callee_no_irq:3338; RV32IXQCCMP-FP:       # %bb.0:3339; RV32IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0-s11}, -963340; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 963341; RV32IXQCCMP-FP-NEXT:    .cfi_offset ra, -43342; RV32IXQCCMP-FP-NEXT:    .cfi_offset s0, -83343; RV32IXQCCMP-FP-NEXT:    .cfi_offset s1, -123344; RV32IXQCCMP-FP-NEXT:    .cfi_offset s2, -163345; RV32IXQCCMP-FP-NEXT:    .cfi_offset s3, -203346; RV32IXQCCMP-FP-NEXT:    .cfi_offset s4, -243347; RV32IXQCCMP-FP-NEXT:    .cfi_offset s5, -283348; RV32IXQCCMP-FP-NEXT:    .cfi_offset s6, -323349; RV32IXQCCMP-FP-NEXT:    .cfi_offset s7, -363350; RV32IXQCCMP-FP-NEXT:    .cfi_offset s8, -403351; RV32IXQCCMP-FP-NEXT:    .cfi_offset s9, -443352; RV32IXQCCMP-FP-NEXT:    .cfi_offset s10, -483353; RV32IXQCCMP-FP-NEXT:    .cfi_offset s11, -523354; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 03355; RV32IXQCCMP-FP-NEXT:    lui a0, %hi(var_test_irq)3356; RV32IXQCCMP-FP-NEXT:    addi a0, a0, %lo(var_test_irq)3357; RV32IXQCCMP-FP-NEXT:    lw a1, 0(a0)3358; RV32IXQCCMP-FP-NEXT:    sw a1, -68(s0) # 4-byte Folded Spill3359; RV32IXQCCMP-FP-NEXT:    lw a1, 4(a0)3360; RV32IXQCCMP-FP-NEXT:    sw a1, -72(s0) # 4-byte Folded Spill3361; RV32IXQCCMP-FP-NEXT:    lw a1, 8(a0)3362; RV32IXQCCMP-FP-NEXT:    sw a1, -76(s0) # 4-byte Folded Spill3363; RV32IXQCCMP-FP-NEXT:    lw a1, 12(a0)3364; RV32IXQCCMP-FP-NEXT:    sw a1, -80(s0) # 4-byte Folded Spill3365; RV32IXQCCMP-FP-NEXT:    lw a1, 16(a0)3366; RV32IXQCCMP-FP-NEXT:    sw a1, -84(s0) # 4-byte Folded Spill3367; RV32IXQCCMP-FP-NEXT:    lw a1, 20(a0)3368; RV32IXQCCMP-FP-NEXT:    sw a1, -88(s0) # 4-byte Folded Spill3369; RV32IXQCCMP-FP-NEXT:    lw t4, 24(a0)3370; RV32IXQCCMP-FP-NEXT:    lw t5, 28(a0)3371; RV32IXQCCMP-FP-NEXT:    lw t6, 32(a0)3372; RV32IXQCCMP-FP-NEXT:    lw s2, 36(a0)3373; RV32IXQCCMP-FP-NEXT:    lw s3, 40(a0)3374; RV32IXQCCMP-FP-NEXT:    lw s4, 44(a0)3375; RV32IXQCCMP-FP-NEXT:    lw s5, 48(a0)3376; RV32IXQCCMP-FP-NEXT:    lw s6, 52(a0)3377; RV32IXQCCMP-FP-NEXT:    lw s7, 56(a0)3378; RV32IXQCCMP-FP-NEXT:    lw s8, 60(a0)3379; RV32IXQCCMP-FP-NEXT:    lw s9, 64(a0)3380; RV32IXQCCMP-FP-NEXT:    lw s10, 68(a0)3381; RV32IXQCCMP-FP-NEXT:    lw s11, 72(a0)3382; RV32IXQCCMP-FP-NEXT:    lw ra, 76(a0)3383; RV32IXQCCMP-FP-NEXT:    lw s1, 80(a0)3384; RV32IXQCCMP-FP-NEXT:    lw t3, 84(a0)3385; RV32IXQCCMP-FP-NEXT:    lw t2, 88(a0)3386; RV32IXQCCMP-FP-NEXT:    lw t1, 92(a0)3387; RV32IXQCCMP-FP-NEXT:    lw t0, 112(a0)3388; RV32IXQCCMP-FP-NEXT:    lw a6, 116(a0)3389; RV32IXQCCMP-FP-NEXT:    lw a4, 120(a0)3390; RV32IXQCCMP-FP-NEXT:    lw a1, 124(a0)3391; RV32IXQCCMP-FP-NEXT:    lw a7, 96(a0)3392; RV32IXQCCMP-FP-NEXT:    lw a5, 100(a0)3393; RV32IXQCCMP-FP-NEXT:    lw a3, 104(a0)3394; RV32IXQCCMP-FP-NEXT:    lw a2, 108(a0)3395; RV32IXQCCMP-FP-NEXT:    sw a1, 124(a0)3396; RV32IXQCCMP-FP-NEXT:    sw a4, 120(a0)3397; RV32IXQCCMP-FP-NEXT:    sw a6, 116(a0)3398; RV32IXQCCMP-FP-NEXT:    sw t0, 112(a0)3399; RV32IXQCCMP-FP-NEXT:    sw a2, 108(a0)3400; RV32IXQCCMP-FP-NEXT:    sw a3, 104(a0)3401; RV32IXQCCMP-FP-NEXT:    sw a5, 100(a0)3402; RV32IXQCCMP-FP-NEXT:    sw a7, 96(a0)3403; RV32IXQCCMP-FP-NEXT:    sw t1, 92(a0)3404; RV32IXQCCMP-FP-NEXT:    sw t2, 88(a0)3405; RV32IXQCCMP-FP-NEXT:    sw t3, 84(a0)3406; RV32IXQCCMP-FP-NEXT:    sw s1, 80(a0)3407; RV32IXQCCMP-FP-NEXT:    sw ra, 76(a0)3408; RV32IXQCCMP-FP-NEXT:    sw s11, 72(a0)3409; RV32IXQCCMP-FP-NEXT:    sw s10, 68(a0)3410; RV32IXQCCMP-FP-NEXT:    sw s9, 64(a0)3411; RV32IXQCCMP-FP-NEXT:    sw s8, 60(a0)3412; RV32IXQCCMP-FP-NEXT:    sw s7, 56(a0)3413; RV32IXQCCMP-FP-NEXT:    sw s6, 52(a0)3414; RV32IXQCCMP-FP-NEXT:    sw s5, 48(a0)3415; RV32IXQCCMP-FP-NEXT:    sw s4, 44(a0)3416; RV32IXQCCMP-FP-NEXT:    sw s3, 40(a0)3417; RV32IXQCCMP-FP-NEXT:    sw s2, 36(a0)3418; RV32IXQCCMP-FP-NEXT:    sw t6, 32(a0)3419; RV32IXQCCMP-FP-NEXT:    sw t5, 28(a0)3420; RV32IXQCCMP-FP-NEXT:    sw t4, 24(a0)3421; RV32IXQCCMP-FP-NEXT:    lw a1, -88(s0) # 4-byte Folded Reload3422; RV32IXQCCMP-FP-NEXT:    sw a1, 20(a0)3423; RV32IXQCCMP-FP-NEXT:    lw a1, -84(s0) # 4-byte Folded Reload3424; RV32IXQCCMP-FP-NEXT:    sw a1, 16(a0)3425; RV32IXQCCMP-FP-NEXT:    lw a1, -80(s0) # 4-byte Folded Reload3426; RV32IXQCCMP-FP-NEXT:    sw a1, 12(a0)3427; RV32IXQCCMP-FP-NEXT:    lw a1, -76(s0) # 4-byte Folded Reload3428; RV32IXQCCMP-FP-NEXT:    sw a1, 8(a0)3429; RV32IXQCCMP-FP-NEXT:    lw a1, -72(s0) # 4-byte Folded Reload3430; RV32IXQCCMP-FP-NEXT:    sw a1, 4(a0)3431; RV32IXQCCMP-FP-NEXT:    lw a1, -68(s0) # 4-byte Folded Reload3432; RV32IXQCCMP-FP-NEXT:    sw a1, 0(a0)3433; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 963434; RV32IXQCCMP-FP-NEXT:    qc.cm.popret {ra, s0-s11}, 963435;3436; RV64IXQCCMP-FP-LABEL: callee_no_irq:3437; RV64IXQCCMP-FP:       # %bb.0:3438; RV64IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0-s11}, -1603439; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 1603440; RV64IXQCCMP-FP-NEXT:    .cfi_offset ra, -83441; RV64IXQCCMP-FP-NEXT:    .cfi_offset s0, -163442; RV64IXQCCMP-FP-NEXT:    .cfi_offset s1, -243443; RV64IXQCCMP-FP-NEXT:    .cfi_offset s2, -323444; RV64IXQCCMP-FP-NEXT:    .cfi_offset s3, -403445; RV64IXQCCMP-FP-NEXT:    .cfi_offset s4, -483446; RV64IXQCCMP-FP-NEXT:    .cfi_offset s5, -563447; RV64IXQCCMP-FP-NEXT:    .cfi_offset s6, -643448; RV64IXQCCMP-FP-NEXT:    .cfi_offset s7, -723449; RV64IXQCCMP-FP-NEXT:    .cfi_offset s8, -803450; RV64IXQCCMP-FP-NEXT:    .cfi_offset s9, -883451; RV64IXQCCMP-FP-NEXT:    .cfi_offset s10, -963452; RV64IXQCCMP-FP-NEXT:    .cfi_offset s11, -1043453; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 03454; RV64IXQCCMP-FP-NEXT:    lui a0, %hi(var_test_irq)3455; RV64IXQCCMP-FP-NEXT:    addi a0, a0, %lo(var_test_irq)3456; RV64IXQCCMP-FP-NEXT:    lw a1, 0(a0)3457; RV64IXQCCMP-FP-NEXT:    sd a1, -120(s0) # 8-byte Folded Spill3458; RV64IXQCCMP-FP-NEXT:    lw a1, 4(a0)3459; RV64IXQCCMP-FP-NEXT:    sd a1, -128(s0) # 8-byte Folded Spill3460; RV64IXQCCMP-FP-NEXT:    lw a1, 8(a0)3461; RV64IXQCCMP-FP-NEXT:    sd a1, -136(s0) # 8-byte Folded Spill3462; RV64IXQCCMP-FP-NEXT:    lw a1, 12(a0)3463; RV64IXQCCMP-FP-NEXT:    sd a1, -144(s0) # 8-byte Folded Spill3464; RV64IXQCCMP-FP-NEXT:    lw a1, 16(a0)3465; RV64IXQCCMP-FP-NEXT:    sd a1, -152(s0) # 8-byte Folded Spill3466; RV64IXQCCMP-FP-NEXT:    lw a1, 20(a0)3467; RV64IXQCCMP-FP-NEXT:    sd a1, -160(s0) # 8-byte Folded Spill3468; RV64IXQCCMP-FP-NEXT:    lw t4, 24(a0)3469; RV64IXQCCMP-FP-NEXT:    lw t5, 28(a0)3470; RV64IXQCCMP-FP-NEXT:    lw t6, 32(a0)3471; RV64IXQCCMP-FP-NEXT:    lw s2, 36(a0)3472; RV64IXQCCMP-FP-NEXT:    lw s3, 40(a0)3473; RV64IXQCCMP-FP-NEXT:    lw s4, 44(a0)3474; RV64IXQCCMP-FP-NEXT:    lw s5, 48(a0)3475; RV64IXQCCMP-FP-NEXT:    lw s6, 52(a0)3476; RV64IXQCCMP-FP-NEXT:    lw s7, 56(a0)3477; RV64IXQCCMP-FP-NEXT:    lw s8, 60(a0)3478; RV64IXQCCMP-FP-NEXT:    lw s9, 64(a0)3479; RV64IXQCCMP-FP-NEXT:    lw s10, 68(a0)3480; RV64IXQCCMP-FP-NEXT:    lw s11, 72(a0)3481; RV64IXQCCMP-FP-NEXT:    lw ra, 76(a0)3482; RV64IXQCCMP-FP-NEXT:    lw s1, 80(a0)3483; RV64IXQCCMP-FP-NEXT:    lw t3, 84(a0)3484; RV64IXQCCMP-FP-NEXT:    lw t2, 88(a0)3485; RV64IXQCCMP-FP-NEXT:    lw t1, 92(a0)3486; RV64IXQCCMP-FP-NEXT:    lw t0, 112(a0)3487; RV64IXQCCMP-FP-NEXT:    lw a6, 116(a0)3488; RV64IXQCCMP-FP-NEXT:    lw a4, 120(a0)3489; RV64IXQCCMP-FP-NEXT:    lw a1, 124(a0)3490; RV64IXQCCMP-FP-NEXT:    lw a7, 96(a0)3491; RV64IXQCCMP-FP-NEXT:    lw a5, 100(a0)3492; RV64IXQCCMP-FP-NEXT:    lw a3, 104(a0)3493; RV64IXQCCMP-FP-NEXT:    lw a2, 108(a0)3494; RV64IXQCCMP-FP-NEXT:    sw a1, 124(a0)3495; RV64IXQCCMP-FP-NEXT:    sw a4, 120(a0)3496; RV64IXQCCMP-FP-NEXT:    sw a6, 116(a0)3497; RV64IXQCCMP-FP-NEXT:    sw t0, 112(a0)3498; RV64IXQCCMP-FP-NEXT:    sw a2, 108(a0)3499; RV64IXQCCMP-FP-NEXT:    sw a3, 104(a0)3500; RV64IXQCCMP-FP-NEXT:    sw a5, 100(a0)3501; RV64IXQCCMP-FP-NEXT:    sw a7, 96(a0)3502; RV64IXQCCMP-FP-NEXT:    sw t1, 92(a0)3503; RV64IXQCCMP-FP-NEXT:    sw t2, 88(a0)3504; RV64IXQCCMP-FP-NEXT:    sw t3, 84(a0)3505; RV64IXQCCMP-FP-NEXT:    sw s1, 80(a0)3506; RV64IXQCCMP-FP-NEXT:    sw ra, 76(a0)3507; RV64IXQCCMP-FP-NEXT:    sw s11, 72(a0)3508; RV64IXQCCMP-FP-NEXT:    sw s10, 68(a0)3509; RV64IXQCCMP-FP-NEXT:    sw s9, 64(a0)3510; RV64IXQCCMP-FP-NEXT:    sw s8, 60(a0)3511; RV64IXQCCMP-FP-NEXT:    sw s7, 56(a0)3512; RV64IXQCCMP-FP-NEXT:    sw s6, 52(a0)3513; RV64IXQCCMP-FP-NEXT:    sw s5, 48(a0)3514; RV64IXQCCMP-FP-NEXT:    sw s4, 44(a0)3515; RV64IXQCCMP-FP-NEXT:    sw s3, 40(a0)3516; RV64IXQCCMP-FP-NEXT:    sw s2, 36(a0)3517; RV64IXQCCMP-FP-NEXT:    sw t6, 32(a0)3518; RV64IXQCCMP-FP-NEXT:    sw t5, 28(a0)3519; RV64IXQCCMP-FP-NEXT:    sw t4, 24(a0)3520; RV64IXQCCMP-FP-NEXT:    ld a1, -160(s0) # 8-byte Folded Reload3521; RV64IXQCCMP-FP-NEXT:    sw a1, 20(a0)3522; RV64IXQCCMP-FP-NEXT:    ld a1, -152(s0) # 8-byte Folded Reload3523; RV64IXQCCMP-FP-NEXT:    sw a1, 16(a0)3524; RV64IXQCCMP-FP-NEXT:    ld a1, -144(s0) # 8-byte Folded Reload3525; RV64IXQCCMP-FP-NEXT:    sw a1, 12(a0)3526; RV64IXQCCMP-FP-NEXT:    ld a1, -136(s0) # 8-byte Folded Reload3527; RV64IXQCCMP-FP-NEXT:    sw a1, 8(a0)3528; RV64IXQCCMP-FP-NEXT:    ld a1, -128(s0) # 8-byte Folded Reload3529; RV64IXQCCMP-FP-NEXT:    sw a1, 4(a0)3530; RV64IXQCCMP-FP-NEXT:    ld a1, -120(s0) # 8-byte Folded Reload3531; RV64IXQCCMP-FP-NEXT:    sw a1, 0(a0)3532; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 1603533; RV64IXQCCMP-FP-NEXT:    qc.cm.popret {ra, s0-s11}, 1603534;3535; RV32IXQCCMP-SR-LABEL: callee_no_irq:3536; RV32IXQCCMP-SR:       # %bb.0:3537; RV32IXQCCMP-SR-NEXT:    qc.cm.push {ra, s0-s11}, -963538; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 963539; RV32IXQCCMP-SR-NEXT:    .cfi_offset ra, -43540; RV32IXQCCMP-SR-NEXT:    .cfi_offset s0, -83541; RV32IXQCCMP-SR-NEXT:    .cfi_offset s1, -123542; RV32IXQCCMP-SR-NEXT:    .cfi_offset s2, -163543; RV32IXQCCMP-SR-NEXT:    .cfi_offset s3, -203544; RV32IXQCCMP-SR-NEXT:    .cfi_offset s4, -243545; RV32IXQCCMP-SR-NEXT:    .cfi_offset s5, -283546; RV32IXQCCMP-SR-NEXT:    .cfi_offset s6, -323547; RV32IXQCCMP-SR-NEXT:    .cfi_offset s7, -363548; RV32IXQCCMP-SR-NEXT:    .cfi_offset s8, -403549; RV32IXQCCMP-SR-NEXT:    .cfi_offset s9, -443550; RV32IXQCCMP-SR-NEXT:    .cfi_offset s10, -483551; RV32IXQCCMP-SR-NEXT:    .cfi_offset s11, -523552; RV32IXQCCMP-SR-NEXT:    lui a0, %hi(var_test_irq)3553; RV32IXQCCMP-SR-NEXT:    addi a0, a0, %lo(var_test_irq)3554; RV32IXQCCMP-SR-NEXT:    lw a1, 0(a0)3555; RV32IXQCCMP-SR-NEXT:    sw a1, 28(sp) # 4-byte Folded Spill3556; RV32IXQCCMP-SR-NEXT:    lw a1, 4(a0)3557; RV32IXQCCMP-SR-NEXT:    sw a1, 24(sp) # 4-byte Folded Spill3558; RV32IXQCCMP-SR-NEXT:    lw a1, 8(a0)3559; RV32IXQCCMP-SR-NEXT:    sw a1, 20(sp) # 4-byte Folded Spill3560; RV32IXQCCMP-SR-NEXT:    lw a1, 12(a0)3561; RV32IXQCCMP-SR-NEXT:    sw a1, 16(sp) # 4-byte Folded Spill3562; RV32IXQCCMP-SR-NEXT:    lw a1, 16(a0)3563; RV32IXQCCMP-SR-NEXT:    sw a1, 12(sp) # 4-byte Folded Spill3564; RV32IXQCCMP-SR-NEXT:    lw t3, 20(a0)3565; RV32IXQCCMP-SR-NEXT:    lw t4, 24(a0)3566; RV32IXQCCMP-SR-NEXT:    lw t5, 28(a0)3567; RV32IXQCCMP-SR-NEXT:    lw t6, 32(a0)3568; RV32IXQCCMP-SR-NEXT:    lw s2, 36(a0)3569; RV32IXQCCMP-SR-NEXT:    lw s3, 40(a0)3570; RV32IXQCCMP-SR-NEXT:    lw s4, 44(a0)3571; RV32IXQCCMP-SR-NEXT:    lw s5, 48(a0)3572; RV32IXQCCMP-SR-NEXT:    lw s6, 52(a0)3573; RV32IXQCCMP-SR-NEXT:    lw s7, 56(a0)3574; RV32IXQCCMP-SR-NEXT:    lw s8, 60(a0)3575; RV32IXQCCMP-SR-NEXT:    lw s9, 64(a0)3576; RV32IXQCCMP-SR-NEXT:    lw s10, 68(a0)3577; RV32IXQCCMP-SR-NEXT:    lw s11, 72(a0)3578; RV32IXQCCMP-SR-NEXT:    lw ra, 76(a0)3579; RV32IXQCCMP-SR-NEXT:    lw t2, 80(a0)3580; RV32IXQCCMP-SR-NEXT:    lw s0, 84(a0)3581; RV32IXQCCMP-SR-NEXT:    lw s1, 88(a0)3582; RV32IXQCCMP-SR-NEXT:    lw t1, 92(a0)3583; RV32IXQCCMP-SR-NEXT:    lw t0, 112(a0)3584; RV32IXQCCMP-SR-NEXT:    lw a5, 116(a0)3585; RV32IXQCCMP-SR-NEXT:    lw a3, 120(a0)3586; RV32IXQCCMP-SR-NEXT:    lw a1, 124(a0)3587; RV32IXQCCMP-SR-NEXT:    lw a7, 96(a0)3588; RV32IXQCCMP-SR-NEXT:    lw a6, 100(a0)3589; RV32IXQCCMP-SR-NEXT:    lw a4, 104(a0)3590; RV32IXQCCMP-SR-NEXT:    lw a2, 108(a0)3591; RV32IXQCCMP-SR-NEXT:    sw a1, 124(a0)3592; RV32IXQCCMP-SR-NEXT:    sw a3, 120(a0)3593; RV32IXQCCMP-SR-NEXT:    sw a5, 116(a0)3594; RV32IXQCCMP-SR-NEXT:    sw t0, 112(a0)3595; RV32IXQCCMP-SR-NEXT:    sw a2, 108(a0)3596; RV32IXQCCMP-SR-NEXT:    sw a4, 104(a0)3597; RV32IXQCCMP-SR-NEXT:    sw a6, 100(a0)3598; RV32IXQCCMP-SR-NEXT:    sw a7, 96(a0)3599; RV32IXQCCMP-SR-NEXT:    sw t1, 92(a0)3600; RV32IXQCCMP-SR-NEXT:    sw s1, 88(a0)3601; RV32IXQCCMP-SR-NEXT:    sw s0, 84(a0)3602; RV32IXQCCMP-SR-NEXT:    sw t2, 80(a0)3603; RV32IXQCCMP-SR-NEXT:    sw ra, 76(a0)3604; RV32IXQCCMP-SR-NEXT:    sw s11, 72(a0)3605; RV32IXQCCMP-SR-NEXT:    sw s10, 68(a0)3606; RV32IXQCCMP-SR-NEXT:    sw s9, 64(a0)3607; RV32IXQCCMP-SR-NEXT:    sw s8, 60(a0)3608; RV32IXQCCMP-SR-NEXT:    sw s7, 56(a0)3609; RV32IXQCCMP-SR-NEXT:    sw s6, 52(a0)3610; RV32IXQCCMP-SR-NEXT:    sw s5, 48(a0)3611; RV32IXQCCMP-SR-NEXT:    sw s4, 44(a0)3612; RV32IXQCCMP-SR-NEXT:    sw s3, 40(a0)3613; RV32IXQCCMP-SR-NEXT:    sw s2, 36(a0)3614; RV32IXQCCMP-SR-NEXT:    sw t6, 32(a0)3615; RV32IXQCCMP-SR-NEXT:    sw t5, 28(a0)3616; RV32IXQCCMP-SR-NEXT:    sw t4, 24(a0)3617; RV32IXQCCMP-SR-NEXT:    sw t3, 20(a0)3618; RV32IXQCCMP-SR-NEXT:    lw a1, 12(sp) # 4-byte Folded Reload3619; RV32IXQCCMP-SR-NEXT:    sw a1, 16(a0)3620; RV32IXQCCMP-SR-NEXT:    lw a1, 16(sp) # 4-byte Folded Reload3621; RV32IXQCCMP-SR-NEXT:    sw a1, 12(a0)3622; RV32IXQCCMP-SR-NEXT:    lw a1, 20(sp) # 4-byte Folded Reload3623; RV32IXQCCMP-SR-NEXT:    sw a1, 8(a0)3624; RV32IXQCCMP-SR-NEXT:    lw a1, 24(sp) # 4-byte Folded Reload3625; RV32IXQCCMP-SR-NEXT:    sw a1, 4(a0)3626; RV32IXQCCMP-SR-NEXT:    lw a1, 28(sp) # 4-byte Folded Reload3627; RV32IXQCCMP-SR-NEXT:    sw a1, 0(a0)3628; RV32IXQCCMP-SR-NEXT:    qc.cm.popret {ra, s0-s11}, 963629;3630; RV64IXQCCMP-SR-LABEL: callee_no_irq:3631; RV64IXQCCMP-SR:       # %bb.0:3632; RV64IXQCCMP-SR-NEXT:    qc.cm.push {ra, s0-s11}, -1603633; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 1603634; RV64IXQCCMP-SR-NEXT:    .cfi_offset ra, -83635; RV64IXQCCMP-SR-NEXT:    .cfi_offset s0, -163636; RV64IXQCCMP-SR-NEXT:    .cfi_offset s1, -243637; RV64IXQCCMP-SR-NEXT:    .cfi_offset s2, -323638; RV64IXQCCMP-SR-NEXT:    .cfi_offset s3, -403639; RV64IXQCCMP-SR-NEXT:    .cfi_offset s4, -483640; RV64IXQCCMP-SR-NEXT:    .cfi_offset s5, -563641; RV64IXQCCMP-SR-NEXT:    .cfi_offset s6, -643642; RV64IXQCCMP-SR-NEXT:    .cfi_offset s7, -723643; RV64IXQCCMP-SR-NEXT:    .cfi_offset s8, -803644; RV64IXQCCMP-SR-NEXT:    .cfi_offset s9, -883645; RV64IXQCCMP-SR-NEXT:    .cfi_offset s10, -963646; RV64IXQCCMP-SR-NEXT:    .cfi_offset s11, -1043647; RV64IXQCCMP-SR-NEXT:    lui a0, %hi(var_test_irq)3648; RV64IXQCCMP-SR-NEXT:    addi a0, a0, %lo(var_test_irq)3649; RV64IXQCCMP-SR-NEXT:    lw a1, 0(a0)3650; RV64IXQCCMP-SR-NEXT:    sd a1, 40(sp) # 8-byte Folded Spill3651; RV64IXQCCMP-SR-NEXT:    lw a1, 4(a0)3652; RV64IXQCCMP-SR-NEXT:    sd a1, 32(sp) # 8-byte Folded Spill3653; RV64IXQCCMP-SR-NEXT:    lw a1, 8(a0)3654; RV64IXQCCMP-SR-NEXT:    sd a1, 24(sp) # 8-byte Folded Spill3655; RV64IXQCCMP-SR-NEXT:    lw a1, 12(a0)3656; RV64IXQCCMP-SR-NEXT:    sd a1, 16(sp) # 8-byte Folded Spill3657; RV64IXQCCMP-SR-NEXT:    lw a1, 16(a0)3658; RV64IXQCCMP-SR-NEXT:    sd a1, 8(sp) # 8-byte Folded Spill3659; RV64IXQCCMP-SR-NEXT:    lw t3, 20(a0)3660; RV64IXQCCMP-SR-NEXT:    lw t4, 24(a0)3661; RV64IXQCCMP-SR-NEXT:    lw t5, 28(a0)3662; RV64IXQCCMP-SR-NEXT:    lw t6, 32(a0)3663; RV64IXQCCMP-SR-NEXT:    lw s2, 36(a0)3664; RV64IXQCCMP-SR-NEXT:    lw s3, 40(a0)3665; RV64IXQCCMP-SR-NEXT:    lw s4, 44(a0)3666; RV64IXQCCMP-SR-NEXT:    lw s5, 48(a0)3667; RV64IXQCCMP-SR-NEXT:    lw s6, 52(a0)3668; RV64IXQCCMP-SR-NEXT:    lw s7, 56(a0)3669; RV64IXQCCMP-SR-NEXT:    lw s8, 60(a0)3670; RV64IXQCCMP-SR-NEXT:    lw s9, 64(a0)3671; RV64IXQCCMP-SR-NEXT:    lw s10, 68(a0)3672; RV64IXQCCMP-SR-NEXT:    lw s11, 72(a0)3673; RV64IXQCCMP-SR-NEXT:    lw ra, 76(a0)3674; RV64IXQCCMP-SR-NEXT:    lw t2, 80(a0)3675; RV64IXQCCMP-SR-NEXT:    lw s0, 84(a0)3676; RV64IXQCCMP-SR-NEXT:    lw s1, 88(a0)3677; RV64IXQCCMP-SR-NEXT:    lw t1, 92(a0)3678; RV64IXQCCMP-SR-NEXT:    lw t0, 112(a0)3679; RV64IXQCCMP-SR-NEXT:    lw a5, 116(a0)3680; RV64IXQCCMP-SR-NEXT:    lw a3, 120(a0)3681; RV64IXQCCMP-SR-NEXT:    lw a1, 124(a0)3682; RV64IXQCCMP-SR-NEXT:    lw a7, 96(a0)3683; RV64IXQCCMP-SR-NEXT:    lw a6, 100(a0)3684; RV64IXQCCMP-SR-NEXT:    lw a4, 104(a0)3685; RV64IXQCCMP-SR-NEXT:    lw a2, 108(a0)3686; RV64IXQCCMP-SR-NEXT:    sw a1, 124(a0)3687; RV64IXQCCMP-SR-NEXT:    sw a3, 120(a0)3688; RV64IXQCCMP-SR-NEXT:    sw a5, 116(a0)3689; RV64IXQCCMP-SR-NEXT:    sw t0, 112(a0)3690; RV64IXQCCMP-SR-NEXT:    sw a2, 108(a0)3691; RV64IXQCCMP-SR-NEXT:    sw a4, 104(a0)3692; RV64IXQCCMP-SR-NEXT:    sw a6, 100(a0)3693; RV64IXQCCMP-SR-NEXT:    sw a7, 96(a0)3694; RV64IXQCCMP-SR-NEXT:    sw t1, 92(a0)3695; RV64IXQCCMP-SR-NEXT:    sw s1, 88(a0)3696; RV64IXQCCMP-SR-NEXT:    sw s0, 84(a0)3697; RV64IXQCCMP-SR-NEXT:    sw t2, 80(a0)3698; RV64IXQCCMP-SR-NEXT:    sw ra, 76(a0)3699; RV64IXQCCMP-SR-NEXT:    sw s11, 72(a0)3700; RV64IXQCCMP-SR-NEXT:    sw s10, 68(a0)3701; RV64IXQCCMP-SR-NEXT:    sw s9, 64(a0)3702; RV64IXQCCMP-SR-NEXT:    sw s8, 60(a0)3703; RV64IXQCCMP-SR-NEXT:    sw s7, 56(a0)3704; RV64IXQCCMP-SR-NEXT:    sw s6, 52(a0)3705; RV64IXQCCMP-SR-NEXT:    sw s5, 48(a0)3706; RV64IXQCCMP-SR-NEXT:    sw s4, 44(a0)3707; RV64IXQCCMP-SR-NEXT:    sw s3, 40(a0)3708; RV64IXQCCMP-SR-NEXT:    sw s2, 36(a0)3709; RV64IXQCCMP-SR-NEXT:    sw t6, 32(a0)3710; RV64IXQCCMP-SR-NEXT:    sw t5, 28(a0)3711; RV64IXQCCMP-SR-NEXT:    sw t4, 24(a0)3712; RV64IXQCCMP-SR-NEXT:    sw t3, 20(a0)3713; RV64IXQCCMP-SR-NEXT:    ld a1, 8(sp) # 8-byte Folded Reload3714; RV64IXQCCMP-SR-NEXT:    sw a1, 16(a0)3715; RV64IXQCCMP-SR-NEXT:    ld a1, 16(sp) # 8-byte Folded Reload3716; RV64IXQCCMP-SR-NEXT:    sw a1, 12(a0)3717; RV64IXQCCMP-SR-NEXT:    ld a1, 24(sp) # 8-byte Folded Reload3718; RV64IXQCCMP-SR-NEXT:    sw a1, 8(a0)3719; RV64IXQCCMP-SR-NEXT:    ld a1, 32(sp) # 8-byte Folded Reload3720; RV64IXQCCMP-SR-NEXT:    sw a1, 4(a0)3721; RV64IXQCCMP-SR-NEXT:    ld a1, 40(sp) # 8-byte Folded Reload3722; RV64IXQCCMP-SR-NEXT:    sw a1, 0(a0)3723; RV64IXQCCMP-SR-NEXT:    qc.cm.popret {ra, s0-s11}, 1603724  %val = load [32 x i32], ptr @var_test_irq3725  store volatile [32 x i32] %val, ptr @var_test_irq3726  ret void3727}3728 3729declare void @bar(ptr, ptr)3730 3731define i32 @use_fp(i32 %x) {3732; RV32IXQCCMP-LABEL: use_fp:3733; RV32IXQCCMP:       # %bb.0: # %entry3734; RV32IXQCCMP-NEXT:    qc.cm.pushfp {ra, s0-s1}, -323735; RV32IXQCCMP-NEXT:    .cfi_def_cfa_offset 323736; RV32IXQCCMP-NEXT:    .cfi_offset ra, -43737; RV32IXQCCMP-NEXT:    .cfi_offset s0, -83738; RV32IXQCCMP-NEXT:    .cfi_offset s1, -123739; RV32IXQCCMP-NEXT:    .cfi_def_cfa s0, 03740; RV32IXQCCMP-NEXT:    mv s1, a03741; RV32IXQCCMP-NEXT:    addi a1, s0, -203742; RV32IXQCCMP-NEXT:    mv a0, s03743; RV32IXQCCMP-NEXT:    call bar3744; RV32IXQCCMP-NEXT:    mv a0, s13745; RV32IXQCCMP-NEXT:    .cfi_def_cfa sp, 323746; RV32IXQCCMP-NEXT:    qc.cm.popret {ra, s0-s1}, 323747;3748; RV64IXQCCMP-LABEL: use_fp:3749; RV64IXQCCMP:       # %bb.0: # %entry3750; RV64IXQCCMP-NEXT:    qc.cm.pushfp {ra, s0-s1}, -483751; RV64IXQCCMP-NEXT:    .cfi_def_cfa_offset 483752; RV64IXQCCMP-NEXT:    .cfi_offset ra, -83753; RV64IXQCCMP-NEXT:    .cfi_offset s0, -163754; RV64IXQCCMP-NEXT:    .cfi_offset s1, -243755; RV64IXQCCMP-NEXT:    .cfi_def_cfa s0, 03756; RV64IXQCCMP-NEXT:    mv s1, a03757; RV64IXQCCMP-NEXT:    addi a1, s0, -363758; RV64IXQCCMP-NEXT:    mv a0, s03759; RV64IXQCCMP-NEXT:    call bar3760; RV64IXQCCMP-NEXT:    mv a0, s13761; RV64IXQCCMP-NEXT:    .cfi_def_cfa sp, 483762; RV64IXQCCMP-NEXT:    qc.cm.popret {ra, s0-s1}, 483763;3764; RV32IXQCCMP-FP-LABEL: use_fp:3765; RV32IXQCCMP-FP:       # %bb.0: # %entry3766; RV32IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0-s1}, -323767; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 323768; RV32IXQCCMP-FP-NEXT:    .cfi_offset ra, -43769; RV32IXQCCMP-FP-NEXT:    .cfi_offset s0, -83770; RV32IXQCCMP-FP-NEXT:    .cfi_offset s1, -123771; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 03772; RV32IXQCCMP-FP-NEXT:    mv s1, a03773; RV32IXQCCMP-FP-NEXT:    addi a1, s0, -203774; RV32IXQCCMP-FP-NEXT:    mv a0, s03775; RV32IXQCCMP-FP-NEXT:    call bar3776; RV32IXQCCMP-FP-NEXT:    mv a0, s13777; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 323778; RV32IXQCCMP-FP-NEXT:    qc.cm.popret {ra, s0-s1}, 323779;3780; RV64IXQCCMP-FP-LABEL: use_fp:3781; RV64IXQCCMP-FP:       # %bb.0: # %entry3782; RV64IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0-s1}, -483783; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 483784; RV64IXQCCMP-FP-NEXT:    .cfi_offset ra, -83785; RV64IXQCCMP-FP-NEXT:    .cfi_offset s0, -163786; RV64IXQCCMP-FP-NEXT:    .cfi_offset s1, -243787; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 03788; RV64IXQCCMP-FP-NEXT:    mv s1, a03789; RV64IXQCCMP-FP-NEXT:    addi a1, s0, -363790; RV64IXQCCMP-FP-NEXT:    mv a0, s03791; RV64IXQCCMP-FP-NEXT:    call bar3792; RV64IXQCCMP-FP-NEXT:    mv a0, s13793; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 483794; RV64IXQCCMP-FP-NEXT:    qc.cm.popret {ra, s0-s1}, 483795;3796; RV32IXQCCMP-SR-LABEL: use_fp:3797; RV32IXQCCMP-SR:       # %bb.0: # %entry3798; RV32IXQCCMP-SR-NEXT:    qc.cm.pushfp {ra, s0-s1}, -323799; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 323800; RV32IXQCCMP-SR-NEXT:    .cfi_offset ra, -43801; RV32IXQCCMP-SR-NEXT:    .cfi_offset s0, -83802; RV32IXQCCMP-SR-NEXT:    .cfi_offset s1, -123803; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa s0, 03804; RV32IXQCCMP-SR-NEXT:    mv s1, a03805; RV32IXQCCMP-SR-NEXT:    addi a1, s0, -203806; RV32IXQCCMP-SR-NEXT:    mv a0, s03807; RV32IXQCCMP-SR-NEXT:    call bar3808; RV32IXQCCMP-SR-NEXT:    mv a0, s13809; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa sp, 323810; RV32IXQCCMP-SR-NEXT:    qc.cm.popret {ra, s0-s1}, 323811;3812; RV64IXQCCMP-SR-LABEL: use_fp:3813; RV64IXQCCMP-SR:       # %bb.0: # %entry3814; RV64IXQCCMP-SR-NEXT:    qc.cm.pushfp {ra, s0-s1}, -483815; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 483816; RV64IXQCCMP-SR-NEXT:    .cfi_offset ra, -83817; RV64IXQCCMP-SR-NEXT:    .cfi_offset s0, -163818; RV64IXQCCMP-SR-NEXT:    .cfi_offset s1, -243819; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa s0, 03820; RV64IXQCCMP-SR-NEXT:    mv s1, a03821; RV64IXQCCMP-SR-NEXT:    addi a1, s0, -363822; RV64IXQCCMP-SR-NEXT:    mv a0, s03823; RV64IXQCCMP-SR-NEXT:    call bar3824; RV64IXQCCMP-SR-NEXT:    mv a0, s13825; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa sp, 483826; RV64IXQCCMP-SR-NEXT:    qc.cm.popret {ra, s0-s1}, 483827entry:3828  %var = alloca i32, align 43829  %0 = tail call ptr @llvm.frameaddress.p0(i32 0)3830  call void @bar(ptr %0, ptr %var)3831  ret i32 %x3832}3833 3834define void @spill_x10() {3835; RV32IXQCCMP-LABEL: spill_x10:3836; RV32IXQCCMP:       # %bb.0: # %entry3837; RV32IXQCCMP-NEXT:    qc.cm.push {ra, s0-s11}, -643838; RV32IXQCCMP-NEXT:    .cfi_def_cfa_offset 643839; RV32IXQCCMP-NEXT:    .cfi_offset s10, -483840; RV32IXQCCMP-NEXT:    .cfi_offset s11, -523841; RV32IXQCCMP-NEXT:    #APP3842; RV32IXQCCMP-NEXT:    li s10, 03843; RV32IXQCCMP-NEXT:    #NO_APP3844; RV32IXQCCMP-NEXT:    qc.cm.popret {ra, s0-s11}, 643845;3846; RV64IXQCCMP-LABEL: spill_x10:3847; RV64IXQCCMP:       # %bb.0: # %entry3848; RV64IXQCCMP-NEXT:    qc.cm.push {ra, s0-s11}, -1123849; RV64IXQCCMP-NEXT:    .cfi_def_cfa_offset 1123850; RV64IXQCCMP-NEXT:    .cfi_offset s10, -963851; RV64IXQCCMP-NEXT:    .cfi_offset s11, -1043852; RV64IXQCCMP-NEXT:    #APP3853; RV64IXQCCMP-NEXT:    li s10, 03854; RV64IXQCCMP-NEXT:    #NO_APP3855; RV64IXQCCMP-NEXT:    qc.cm.popret {ra, s0-s11}, 1123856;3857; RV32IXQCCMP-FP-LABEL: spill_x10:3858; RV32IXQCCMP-FP:       # %bb.0: # %entry3859; RV32IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0-s11}, -643860; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 643861; RV32IXQCCMP-FP-NEXT:    .cfi_offset ra, -43862; RV32IXQCCMP-FP-NEXT:    .cfi_offset s0, -83863; RV32IXQCCMP-FP-NEXT:    .cfi_offset s10, -483864; RV32IXQCCMP-FP-NEXT:    .cfi_offset s11, -523865; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 03866; RV32IXQCCMP-FP-NEXT:    #APP3867; RV32IXQCCMP-FP-NEXT:    li s10, 03868; RV32IXQCCMP-FP-NEXT:    #NO_APP3869; RV32IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 643870; RV32IXQCCMP-FP-NEXT:    qc.cm.popret {ra, s0-s11}, 643871;3872; RV64IXQCCMP-FP-LABEL: spill_x10:3873; RV64IXQCCMP-FP:       # %bb.0: # %entry3874; RV64IXQCCMP-FP-NEXT:    qc.cm.pushfp {ra, s0-s11}, -1123875; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa_offset 1123876; RV64IXQCCMP-FP-NEXT:    .cfi_offset ra, -83877; RV64IXQCCMP-FP-NEXT:    .cfi_offset s0, -163878; RV64IXQCCMP-FP-NEXT:    .cfi_offset s10, -963879; RV64IXQCCMP-FP-NEXT:    .cfi_offset s11, -1043880; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa s0, 03881; RV64IXQCCMP-FP-NEXT:    #APP3882; RV64IXQCCMP-FP-NEXT:    li s10, 03883; RV64IXQCCMP-FP-NEXT:    #NO_APP3884; RV64IXQCCMP-FP-NEXT:    .cfi_def_cfa sp, 1123885; RV64IXQCCMP-FP-NEXT:    qc.cm.popret {ra, s0-s11}, 1123886;3887; RV32IXQCCMP-SR-LABEL: spill_x10:3888; RV32IXQCCMP-SR:       # %bb.0: # %entry3889; RV32IXQCCMP-SR-NEXT:    qc.cm.push {ra, s0-s11}, -643890; RV32IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 643891; RV32IXQCCMP-SR-NEXT:    .cfi_offset s10, -483892; RV32IXQCCMP-SR-NEXT:    .cfi_offset s11, -523893; RV32IXQCCMP-SR-NEXT:    #APP3894; RV32IXQCCMP-SR-NEXT:    li s10, 03895; RV32IXQCCMP-SR-NEXT:    #NO_APP3896; RV32IXQCCMP-SR-NEXT:    qc.cm.popret {ra, s0-s11}, 643897;3898; RV64IXQCCMP-SR-LABEL: spill_x10:3899; RV64IXQCCMP-SR:       # %bb.0: # %entry3900; RV64IXQCCMP-SR-NEXT:    qc.cm.push {ra, s0-s11}, -1123901; RV64IXQCCMP-SR-NEXT:    .cfi_def_cfa_offset 1123902; RV64IXQCCMP-SR-NEXT:    .cfi_offset s10, -963903; RV64IXQCCMP-SR-NEXT:    .cfi_offset s11, -1043904; RV64IXQCCMP-SR-NEXT:    #APP3905; RV64IXQCCMP-SR-NEXT:    li s10, 03906; RV64IXQCCMP-SR-NEXT:    #NO_APP3907; RV64IXQCCMP-SR-NEXT:    qc.cm.popret {ra, s0-s11}, 1123908entry:3909  tail call void asm sideeffect "li s10, 0", "~{s10}"()3910  ret void3911}3912