brintos

brintos / llvm-project-archived public Read only

0
0
Text · 13.4 KiB · 4aad0a8 Raw
327 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=riscv32 -verify-machineinstrs < %s \3; RUN:   | FileCheck %s -check-prefix=RV32I4; RUN: llc -mtriple=riscv32 -target-abi=ilp32d -mattr=+d -verify-machineinstrs < %s \5; RUN:   | FileCheck %s -check-prefix=RV32D6; RUN: llc -mtriple=riscv64 -verify-machineinstrs < %s \7; RUN:   | FileCheck %s -check-prefix=RV64I8; RUN: llc -mtriple=riscv64 -target-abi=lp64d -mattr=+d -verify-machineinstrs < %s \9; RUN:   | FileCheck %s -check-prefix=RV64D10; RUN: llc -mtriple=riscv32 -mattr=+Xmipslsp -use-riscv-mips-load-store-pairs=1 -verify-machineinstrs < %s \11; RUN:   | FileCheck %s -check-prefix=RV32I_PAIR12; RUN: llc -mtriple=riscv32 -target-abi=ilp32d -mattr=+d,+Xmipslsp -use-riscv-mips-load-store-pairs=1 -verify-machineinstrs < %s \13; RUN:   | FileCheck %s -check-prefix=RV32D_PAIR14; RUN: llc -mtriple=riscv64 -mattr=+Xmipslsp -use-riscv-mips-load-store-pairs=1 -verify-machineinstrs < %s \15; RUN:   | FileCheck %s -check-prefix=RV64I_PAIR16; RUN: llc -mtriple=riscv64 -mcpu=mips-p8700 -mattr=+Xmipslsp -use-riscv-mips-load-store-pairs=1 -verify-machineinstrs < %s \17; RUN:   | FileCheck %s -check-prefix=RV64P_870018; RUN: llc -mtriple=riscv64 -target-abi=lp64d -mattr=+d,+Xmipslsp -use-riscv-mips-load-store-pairs=1 -verify-machineinstrs < %s \19; RUN:   | FileCheck %s -check-prefix=RV64D_PAIR20; RUN: llc -mtriple=riscv64 -target-abi=lp64d -mattr=+d -verify-machineinstrs < %s \21; RUN:   | FileCheck %s -check-prefix=RV64D_NOPAIR22 23define void @testi(ptr %a) {24; RV32I-LABEL: testi:25; RV32I:       # %bb.0: # %entry26; RV32I-NEXT:    addi sp, sp, -1627; RV32I-NEXT:    .cfi_def_cfa_offset 1628; RV32I-NEXT:    sw s2, 12(sp) # 4-byte Folded Spill29; RV32I-NEXT:    sw s3, 8(sp) # 4-byte Folded Spill30; RV32I-NEXT:    sw s4, 4(sp) # 4-byte Folded Spill31; RV32I-NEXT:    sw s5, 0(sp) # 4-byte Folded Spill32; RV32I-NEXT:    .cfi_offset s2, -433; RV32I-NEXT:    .cfi_offset s3, -834; RV32I-NEXT:    .cfi_offset s4, -1235; RV32I-NEXT:    .cfi_offset s5, -1636; RV32I-NEXT:    lw s3, 0(a0)37; RV32I-NEXT:    lw s2, 4(a0)38; RV32I-NEXT:    lw s5, 8(a0)39; RV32I-NEXT:    lw s4, 12(a0)40; RV32I-NEXT:    #APP41; RV32I-NEXT:    #NO_APP42; RV32I-NEXT:    lw s2, 12(sp) # 4-byte Folded Reload43; RV32I-NEXT:    lw s3, 8(sp) # 4-byte Folded Reload44; RV32I-NEXT:    lw s4, 4(sp) # 4-byte Folded Reload45; RV32I-NEXT:    lw s5, 0(sp) # 4-byte Folded Reload46; RV32I-NEXT:    .cfi_restore s247; RV32I-NEXT:    .cfi_restore s348; RV32I-NEXT:    .cfi_restore s449; RV32I-NEXT:    .cfi_restore s550; RV32I-NEXT:    addi sp, sp, 1651; RV32I-NEXT:    .cfi_def_cfa_offset 052; RV32I-NEXT:    ret53;54; RV32D-LABEL: testi:55; RV32D:       # %bb.0: # %entry56; RV32D-NEXT:    addi sp, sp, -1657; RV32D-NEXT:    .cfi_def_cfa_offset 1658; RV32D-NEXT:    sw s2, 12(sp) # 4-byte Folded Spill59; RV32D-NEXT:    sw s3, 8(sp) # 4-byte Folded Spill60; RV32D-NEXT:    sw s4, 4(sp) # 4-byte Folded Spill61; RV32D-NEXT:    sw s5, 0(sp) # 4-byte Folded Spill62; RV32D-NEXT:    .cfi_offset s2, -463; RV32D-NEXT:    .cfi_offset s3, -864; RV32D-NEXT:    .cfi_offset s4, -1265; RV32D-NEXT:    .cfi_offset s5, -1666; RV32D-NEXT:    lw s3, 0(a0)67; RV32D-NEXT:    lw s2, 4(a0)68; RV32D-NEXT:    lw s5, 8(a0)69; RV32D-NEXT:    lw s4, 12(a0)70; RV32D-NEXT:    #APP71; RV32D-NEXT:    #NO_APP72; RV32D-NEXT:    lw s2, 12(sp) # 4-byte Folded Reload73; RV32D-NEXT:    lw s3, 8(sp) # 4-byte Folded Reload74; RV32D-NEXT:    lw s4, 4(sp) # 4-byte Folded Reload75; RV32D-NEXT:    lw s5, 0(sp) # 4-byte Folded Reload76; RV32D-NEXT:    .cfi_restore s277; RV32D-NEXT:    .cfi_restore s378; RV32D-NEXT:    .cfi_restore s479; RV32D-NEXT:    .cfi_restore s580; RV32D-NEXT:    addi sp, sp, 1681; RV32D-NEXT:    .cfi_def_cfa_offset 082; RV32D-NEXT:    ret83;84; RV64I-LABEL: testi:85; RV64I:       # %bb.0: # %entry86; RV64I-NEXT:    addi sp, sp, -3287; RV64I-NEXT:    .cfi_def_cfa_offset 3288; RV64I-NEXT:    sd s2, 24(sp) # 8-byte Folded Spill89; RV64I-NEXT:    sd s3, 16(sp) # 8-byte Folded Spill90; RV64I-NEXT:    sd s4, 8(sp) # 8-byte Folded Spill91; RV64I-NEXT:    sd s5, 0(sp) # 8-byte Folded Spill92; RV64I-NEXT:    .cfi_offset s2, -893; RV64I-NEXT:    .cfi_offset s3, -1694; RV64I-NEXT:    .cfi_offset s4, -2495; RV64I-NEXT:    .cfi_offset s5, -3296; RV64I-NEXT:    ld s3, 0(a0)97; RV64I-NEXT:    ld s2, 8(a0)98; RV64I-NEXT:    ld s5, 16(a0)99; RV64I-NEXT:    ld s4, 24(a0)100; RV64I-NEXT:    #APP101; RV64I-NEXT:    #NO_APP102; RV64I-NEXT:    ld s2, 24(sp) # 8-byte Folded Reload103; RV64I-NEXT:    ld s3, 16(sp) # 8-byte Folded Reload104; RV64I-NEXT:    ld s4, 8(sp) # 8-byte Folded Reload105; RV64I-NEXT:    ld s5, 0(sp) # 8-byte Folded Reload106; RV64I-NEXT:    .cfi_restore s2107; RV64I-NEXT:    .cfi_restore s3108; RV64I-NEXT:    .cfi_restore s4109; RV64I-NEXT:    .cfi_restore s5110; RV64I-NEXT:    addi sp, sp, 32111; RV64I-NEXT:    .cfi_def_cfa_offset 0112; RV64I-NEXT:    ret113;114; RV64D-LABEL: testi:115; RV64D:       # %bb.0: # %entry116; RV64D-NEXT:    addi sp, sp, -32117; RV64D-NEXT:    .cfi_def_cfa_offset 32118; RV64D-NEXT:    sd s2, 24(sp) # 8-byte Folded Spill119; RV64D-NEXT:    sd s3, 16(sp) # 8-byte Folded Spill120; RV64D-NEXT:    sd s4, 8(sp) # 8-byte Folded Spill121; RV64D-NEXT:    sd s5, 0(sp) # 8-byte Folded Spill122; RV64D-NEXT:    .cfi_offset s2, -8123; RV64D-NEXT:    .cfi_offset s3, -16124; RV64D-NEXT:    .cfi_offset s4, -24125; RV64D-NEXT:    .cfi_offset s5, -32126; RV64D-NEXT:    ld s3, 0(a0)127; RV64D-NEXT:    ld s2, 8(a0)128; RV64D-NEXT:    ld s5, 16(a0)129; RV64D-NEXT:    ld s4, 24(a0)130; RV64D-NEXT:    #APP131; RV64D-NEXT:    #NO_APP132; RV64D-NEXT:    ld s2, 24(sp) # 8-byte Folded Reload133; RV64D-NEXT:    ld s3, 16(sp) # 8-byte Folded Reload134; RV64D-NEXT:    ld s4, 8(sp) # 8-byte Folded Reload135; RV64D-NEXT:    ld s5, 0(sp) # 8-byte Folded Reload136; RV64D-NEXT:    .cfi_restore s2137; RV64D-NEXT:    .cfi_restore s3138; RV64D-NEXT:    .cfi_restore s4139; RV64D-NEXT:    .cfi_restore s5140; RV64D-NEXT:    addi sp, sp, 32141; RV64D-NEXT:    .cfi_def_cfa_offset 0142; RV64D-NEXT:    ret143;144; RV32I_PAIR-LABEL: testi:145; RV32I_PAIR:       # %bb.0: # %entry146; RV32I_PAIR-NEXT:    addi sp, sp, -16147; RV32I_PAIR-NEXT:    .cfi_def_cfa_offset 16148; RV32I_PAIR-NEXT:    sw s3, 8(sp) # 4-byte Folded Spill149; RV32I_PAIR-NEXT:    sw s2, 12(sp) # 4-byte Folded Spill150; RV32I_PAIR-NEXT:    sw s5, 0(sp) # 4-byte Folded Spill151; RV32I_PAIR-NEXT:    sw s4, 4(sp) # 4-byte Folded Spill152; RV32I_PAIR-NEXT:    .cfi_offset s2, -4153; RV32I_PAIR-NEXT:    .cfi_offset s3, -8154; RV32I_PAIR-NEXT:    .cfi_offset s4, -12155; RV32I_PAIR-NEXT:    .cfi_offset s5, -16156; RV32I_PAIR-NEXT:    mips.lwp s3, s2, 0(a0)157; RV32I_PAIR-NEXT:    mips.lwp s5, s4, 8(a0)158; RV32I_PAIR-NEXT:    #APP159; RV32I_PAIR-NEXT:    #NO_APP160; RV32I_PAIR-NEXT:    lw s3, 8(sp) # 4-byte Folded Reload161; RV32I_PAIR-NEXT:    lw s2, 12(sp) # 4-byte Folded Reload162; RV32I_PAIR-NEXT:    lw s5, 0(sp) # 4-byte Folded Reload163; RV32I_PAIR-NEXT:    lw s4, 4(sp) # 4-byte Folded Reload164; RV32I_PAIR-NEXT:    .cfi_restore s2165; RV32I_PAIR-NEXT:    .cfi_restore s3166; RV32I_PAIR-NEXT:    .cfi_restore s4167; RV32I_PAIR-NEXT:    .cfi_restore s5168; RV32I_PAIR-NEXT:    addi sp, sp, 16169; RV32I_PAIR-NEXT:    .cfi_def_cfa_offset 0170; RV32I_PAIR-NEXT:    ret171;172; RV32D_PAIR-LABEL: testi:173; RV32D_PAIR:       # %bb.0: # %entry174; RV32D_PAIR-NEXT:    addi sp, sp, -16175; RV32D_PAIR-NEXT:    .cfi_def_cfa_offset 16176; RV32D_PAIR-NEXT:    sw s3, 8(sp) # 4-byte Folded Spill177; RV32D_PAIR-NEXT:    sw s2, 12(sp) # 4-byte Folded Spill178; RV32D_PAIR-NEXT:    sw s5, 0(sp) # 4-byte Folded Spill179; RV32D_PAIR-NEXT:    sw s4, 4(sp) # 4-byte Folded Spill180; RV32D_PAIR-NEXT:    .cfi_offset s2, -4181; RV32D_PAIR-NEXT:    .cfi_offset s3, -8182; RV32D_PAIR-NEXT:    .cfi_offset s4, -12183; RV32D_PAIR-NEXT:    .cfi_offset s5, -16184; RV32D_PAIR-NEXT:    mips.lwp s3, s2, 0(a0)185; RV32D_PAIR-NEXT:    mips.lwp s5, s4, 8(a0)186; RV32D_PAIR-NEXT:    #APP187; RV32D_PAIR-NEXT:    #NO_APP188; RV32D_PAIR-NEXT:    lw s3, 8(sp) # 4-byte Folded Reload189; RV32D_PAIR-NEXT:    lw s2, 12(sp) # 4-byte Folded Reload190; RV32D_PAIR-NEXT:    lw s5, 0(sp) # 4-byte Folded Reload191; RV32D_PAIR-NEXT:    lw s4, 4(sp) # 4-byte Folded Reload192; RV32D_PAIR-NEXT:    .cfi_restore s2193; RV32D_PAIR-NEXT:    .cfi_restore s3194; RV32D_PAIR-NEXT:    .cfi_restore s4195; RV32D_PAIR-NEXT:    .cfi_restore s5196; RV32D_PAIR-NEXT:    addi sp, sp, 16197; RV32D_PAIR-NEXT:    .cfi_def_cfa_offset 0198; RV32D_PAIR-NEXT:    ret199;200; RV64I_PAIR-LABEL: testi:201; RV64I_PAIR:       # %bb.0: # %entry202; RV64I_PAIR-NEXT:    addi sp, sp, -32203; RV64I_PAIR-NEXT:    .cfi_def_cfa_offset 32204; RV64I_PAIR-NEXT:    sd s3, 16(sp) # 8-byte Folded Spill205; RV64I_PAIR-NEXT:    sd s2, 24(sp) # 8-byte Folded Spill206; RV64I_PAIR-NEXT:    sd s5, 0(sp) # 8-byte Folded Spill207; RV64I_PAIR-NEXT:    sd s4, 8(sp) # 8-byte Folded Spill208; RV64I_PAIR-NEXT:    .cfi_offset s2, -8209; RV64I_PAIR-NEXT:    .cfi_offset s3, -16210; RV64I_PAIR-NEXT:    .cfi_offset s4, -24211; RV64I_PAIR-NEXT:    .cfi_offset s5, -32212; RV64I_PAIR-NEXT:    mips.ldp s3, s2, 0(a0)213; RV64I_PAIR-NEXT:    ld s5, 16(a0)214; RV64I_PAIR-NEXT:    ld s4, 24(a0)215; RV64I_PAIR-NEXT:    #APP216; RV64I_PAIR-NEXT:    #NO_APP217; RV64I_PAIR-NEXT:    ld s3, 16(sp) # 8-byte Folded Reload218; RV64I_PAIR-NEXT:    ld s2, 24(sp) # 8-byte Folded Reload219; RV64I_PAIR-NEXT:    ld s5, 0(sp) # 8-byte Folded Reload220; RV64I_PAIR-NEXT:    ld s4, 8(sp) # 8-byte Folded Reload221; RV64I_PAIR-NEXT:    .cfi_restore s2222; RV64I_PAIR-NEXT:    .cfi_restore s3223; RV64I_PAIR-NEXT:    .cfi_restore s4224; RV64I_PAIR-NEXT:    .cfi_restore s5225; RV64I_PAIR-NEXT:    addi sp, sp, 32226; RV64I_PAIR-NEXT:    .cfi_def_cfa_offset 0227; RV64I_PAIR-NEXT:    ret228;229; RV64P_8700-LABEL: testi:230; RV64P_8700:       # %bb.0: # %entry231; RV64P_8700-NEXT:    addi sp, sp, -32232; RV64P_8700-NEXT:    .cfi_def_cfa_offset 32233; RV64P_8700-NEXT:    sd s3, 16(sp) # 8-byte Folded Spill234; RV64P_8700-NEXT:    sd s2, 24(sp) # 8-byte Folded Spill235; RV64P_8700-NEXT:    sd s5, 0(sp) # 8-byte Folded Spill236; RV64P_8700-NEXT:    sd s4, 8(sp) # 8-byte Folded Spill237; RV64P_8700-NEXT:    .cfi_offset s2, -8238; RV64P_8700-NEXT:    .cfi_offset s3, -16239; RV64P_8700-NEXT:    .cfi_offset s4, -24240; RV64P_8700-NEXT:    .cfi_offset s5, -32241; RV64P_8700-NEXT:    mips.ldp s3, s2, 0(a0)242; RV64P_8700-NEXT:    ld s5, 16(a0)243; RV64P_8700-NEXT:    ld s4, 24(a0)244; RV64P_8700-NEXT:    #APP245; RV64P_8700-NEXT:    #NO_APP246; RV64P_8700-NEXT:    ld s3, 16(sp) # 8-byte Folded Reload247; RV64P_8700-NEXT:    ld s2, 24(sp) # 8-byte Folded Reload248; RV64P_8700-NEXT:    ld s5, 0(sp) # 8-byte Folded Reload249; RV64P_8700-NEXT:    ld s4, 8(sp) # 8-byte Folded Reload250; RV64P_8700-NEXT:    .cfi_restore s2251; RV64P_8700-NEXT:    .cfi_restore s3252; RV64P_8700-NEXT:    .cfi_restore s4253; RV64P_8700-NEXT:    .cfi_restore s5254; RV64P_8700-NEXT:    addi sp, sp, 32255; RV64P_8700-NEXT:    .cfi_def_cfa_offset 0256; RV64P_8700-NEXT:    ret257;258; RV64D_PAIR-LABEL: testi:259; RV64D_PAIR:       # %bb.0: # %entry260; RV64D_PAIR-NEXT:    addi sp, sp, -32261; RV64D_PAIR-NEXT:    .cfi_def_cfa_offset 32262; RV64D_PAIR-NEXT:    sd s3, 16(sp) # 8-byte Folded Spill263; RV64D_PAIR-NEXT:    sd s2, 24(sp) # 8-byte Folded Spill264; RV64D_PAIR-NEXT:    sd s5, 0(sp) # 8-byte Folded Spill265; RV64D_PAIR-NEXT:    sd s4, 8(sp) # 8-byte Folded Spill266; RV64D_PAIR-NEXT:    .cfi_offset s2, -8267; RV64D_PAIR-NEXT:    .cfi_offset s3, -16268; RV64D_PAIR-NEXT:    .cfi_offset s4, -24269; RV64D_PAIR-NEXT:    .cfi_offset s5, -32270; RV64D_PAIR-NEXT:    mips.ldp s3, s2, 0(a0)271; RV64D_PAIR-NEXT:    ld s5, 16(a0)272; RV64D_PAIR-NEXT:    ld s4, 24(a0)273; RV64D_PAIR-NEXT:    #APP274; RV64D_PAIR-NEXT:    #NO_APP275; RV64D_PAIR-NEXT:    ld s3, 16(sp) # 8-byte Folded Reload276; RV64D_PAIR-NEXT:    ld s2, 24(sp) # 8-byte Folded Reload277; RV64D_PAIR-NEXT:    ld s5, 0(sp) # 8-byte Folded Reload278; RV64D_PAIR-NEXT:    ld s4, 8(sp) # 8-byte Folded Reload279; RV64D_PAIR-NEXT:    .cfi_restore s2280; RV64D_PAIR-NEXT:    .cfi_restore s3281; RV64D_PAIR-NEXT:    .cfi_restore s4282; RV64D_PAIR-NEXT:    .cfi_restore s5283; RV64D_PAIR-NEXT:    addi sp, sp, 32284; RV64D_PAIR-NEXT:    .cfi_def_cfa_offset 0285; RV64D_PAIR-NEXT:    ret286;287; RV64D_NOPAIR-LABEL: testi:288; RV64D_NOPAIR:       # %bb.0: # %entry289; RV64D_NOPAIR-NEXT:    addi sp, sp, -32290; RV64D_NOPAIR-NEXT:    .cfi_def_cfa_offset 32291; RV64D_NOPAIR-NEXT:    sd s2, 24(sp) # 8-byte Folded Spill292; RV64D_NOPAIR-NEXT:    sd s3, 16(sp) # 8-byte Folded Spill293; RV64D_NOPAIR-NEXT:    sd s4, 8(sp) # 8-byte Folded Spill294; RV64D_NOPAIR-NEXT:    sd s5, 0(sp) # 8-byte Folded Spill295; RV64D_NOPAIR-NEXT:    .cfi_offset s2, -8296; RV64D_NOPAIR-NEXT:    .cfi_offset s3, -16297; RV64D_NOPAIR-NEXT:    .cfi_offset s4, -24298; RV64D_NOPAIR-NEXT:    .cfi_offset s5, -32299; RV64D_NOPAIR-NEXT:    ld s3, 0(a0)300; RV64D_NOPAIR-NEXT:    ld s2, 8(a0)301; RV64D_NOPAIR-NEXT:    ld s5, 16(a0)302; RV64D_NOPAIR-NEXT:    ld s4, 24(a0)303; RV64D_NOPAIR-NEXT:    #APP304; RV64D_NOPAIR-NEXT:    #NO_APP305; RV64D_NOPAIR-NEXT:    ld s2, 24(sp) # 8-byte Folded Reload306; RV64D_NOPAIR-NEXT:    ld s3, 16(sp) # 8-byte Folded Reload307; RV64D_NOPAIR-NEXT:    ld s4, 8(sp) # 8-byte Folded Reload308; RV64D_NOPAIR-NEXT:    ld s5, 0(sp) # 8-byte Folded Reload309; RV64D_NOPAIR-NEXT:    .cfi_restore s2310; RV64D_NOPAIR-NEXT:    .cfi_restore s3311; RV64D_NOPAIR-NEXT:    .cfi_restore s4312; RV64D_NOPAIR-NEXT:    .cfi_restore s5313; RV64D_NOPAIR-NEXT:    addi sp, sp, 32314; RV64D_NOPAIR-NEXT:    .cfi_def_cfa_offset 0315; RV64D_NOPAIR-NEXT:    ret316entry:317  %arrayidx = getelementptr inbounds ptr, ptr %a, i64 1318  %0 = load ptr, ptr %arrayidx, align 16319  %1 = load ptr, ptr %a, align 16320  %arrayidx2 = getelementptr inbounds ptr, ptr %a, i64 3321  %2 = load ptr, ptr %arrayidx2, align 16322  %arrayidx3 = getelementptr inbounds ptr, ptr %a, i64 2323  %3 = load ptr, ptr %arrayidx3, align 8324  tail call void asm sideeffect "", "{x18},{x19},{x20},{x21}"(ptr %0, ptr %1, ptr %2, ptr %3)325  ret void326}327