brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.0 KiB · 0c9ef21 Raw
122 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 -check-prefix=RV32I-DEFAULT %s4; RUN: llc -mtriple=riscv64 -verify-machineinstrs < %s \5; RUN:   | FileCheck -check-prefix=RV64I-DEFAULT %s6; RUN: llc -mtriple=riscv32 -M emit-x8-as-fp -verify-machineinstrs < %s \7; RUN:   | FileCheck -check-prefix=RV32I-EMIT-FP %s8; RUN: llc -mtriple=riscv64 -M emit-x8-as-fp -verify-machineinstrs < %s \9; RUN:   | FileCheck -check-prefix=RV64I-EMIT-FP %s10; RUN: llc -mtriple=riscv32 -M numeric -M emit-x8-as-fp -verify-machineinstrs \11; RUN:   < %s | FileCheck -check-prefix=RV32I-NUMERIC %s12; RUN: llc -mtriple=riscv64 -M numeric -M emit-x8-as-fp -verify-machineinstrs \13; RUN:   < %s | FileCheck -check-prefix=RV64I-NUMERIC %s14 15define signext i32 @add(i32 %0, i32 %1) #0 {16; RV32I-DEFAULT-LABEL: add:17; RV32I-DEFAULT:       # %bb.0:18; RV32I-DEFAULT-NEXT:    addi sp, sp, -1619; RV32I-DEFAULT-NEXT:    sw ra, 12(sp) # 4-byte Folded Spill20; RV32I-DEFAULT-NEXT:    sw s0, 8(sp) # 4-byte Folded Spill21; RV32I-DEFAULT-NEXT:    addi s0, sp, 1622; RV32I-DEFAULT-NEXT:    sw a0, -12(s0)23; RV32I-DEFAULT-NEXT:    sw a1, -16(s0)24; RV32I-DEFAULT-NEXT:    lw a0, -12(s0)25; RV32I-DEFAULT-NEXT:    lw a1, -16(s0)26; RV32I-DEFAULT-NEXT:    add a0, a0, a127; RV32I-DEFAULT-NEXT:    lw ra, 12(sp) # 4-byte Folded Reload28; RV32I-DEFAULT-NEXT:    lw s0, 8(sp) # 4-byte Folded Reload29; RV32I-DEFAULT-NEXT:    addi sp, sp, 1630; RV32I-DEFAULT-NEXT:    ret31;32; RV64I-DEFAULT-LABEL: add:33; RV64I-DEFAULT:       # %bb.0:34; RV64I-DEFAULT-NEXT:    addi sp, sp, -3235; RV64I-DEFAULT-NEXT:    sd ra, 24(sp) # 8-byte Folded Spill36; RV64I-DEFAULT-NEXT:    sd s0, 16(sp) # 8-byte Folded Spill37; RV64I-DEFAULT-NEXT:    addi s0, sp, 3238; RV64I-DEFAULT-NEXT:    sw a0, -20(s0)39; RV64I-DEFAULT-NEXT:    sw a1, -24(s0)40; RV64I-DEFAULT-NEXT:    lw a0, -20(s0)41; RV64I-DEFAULT-NEXT:    lw a1, -24(s0)42; RV64I-DEFAULT-NEXT:    addw a0, a0, a143; RV64I-DEFAULT-NEXT:    ld ra, 24(sp) # 8-byte Folded Reload44; RV64I-DEFAULT-NEXT:    ld s0, 16(sp) # 8-byte Folded Reload45; RV64I-DEFAULT-NEXT:    addi sp, sp, 3246; RV64I-DEFAULT-NEXT:    ret47;48; RV32I-EMIT-FP-LABEL: add:49; RV32I-EMIT-FP:       # %bb.0:50; RV32I-EMIT-FP-NEXT:    addi sp, sp, -1651; RV32I-EMIT-FP-NEXT:    sw ra, 12(sp) # 4-byte Folded Spill52; RV32I-EMIT-FP-NEXT:    sw fp, 8(sp) # 4-byte Folded Spill53; RV32I-EMIT-FP-NEXT:    addi fp, sp, 1654; RV32I-EMIT-FP-NEXT:    sw a0, -12(fp)55; RV32I-EMIT-FP-NEXT:    sw a1, -16(fp)56; RV32I-EMIT-FP-NEXT:    lw a0, -12(fp)57; RV32I-EMIT-FP-NEXT:    lw a1, -16(fp)58; RV32I-EMIT-FP-NEXT:    add a0, a0, a159; RV32I-EMIT-FP-NEXT:    lw ra, 12(sp) # 4-byte Folded Reload60; RV32I-EMIT-FP-NEXT:    lw fp, 8(sp) # 4-byte Folded Reload61; RV32I-EMIT-FP-NEXT:    addi sp, sp, 1662; RV32I-EMIT-FP-NEXT:    ret63;64; RV64I-EMIT-FP-LABEL: add:65; RV64I-EMIT-FP:       # %bb.0:66; RV64I-EMIT-FP-NEXT:    addi sp, sp, -3267; RV64I-EMIT-FP-NEXT:    sd ra, 24(sp) # 8-byte Folded Spill68; RV64I-EMIT-FP-NEXT:    sd fp, 16(sp) # 8-byte Folded Spill69; RV64I-EMIT-FP-NEXT:    addi fp, sp, 3270; RV64I-EMIT-FP-NEXT:    sw a0, -20(fp)71; RV64I-EMIT-FP-NEXT:    sw a1, -24(fp)72; RV64I-EMIT-FP-NEXT:    lw a0, -20(fp)73; RV64I-EMIT-FP-NEXT:    lw a1, -24(fp)74; RV64I-EMIT-FP-NEXT:    addw a0, a0, a175; RV64I-EMIT-FP-NEXT:    ld ra, 24(sp) # 8-byte Folded Reload76; RV64I-EMIT-FP-NEXT:    ld fp, 16(sp) # 8-byte Folded Reload77; RV64I-EMIT-FP-NEXT:    addi sp, sp, 3278; RV64I-EMIT-FP-NEXT:    ret79;80; RV32I-NUMERIC-LABEL: add:81; RV32I-NUMERIC:       # %bb.0:82; RV32I-NUMERIC-NEXT:    addi x2, x2, -1683; RV32I-NUMERIC-NEXT:    sw x1, 12(x2) # 4-byte Folded Spill84; RV32I-NUMERIC-NEXT:    sw x8, 8(x2) # 4-byte Folded Spill85; RV32I-NUMERIC-NEXT:    addi x8, x2, 1686; RV32I-NUMERIC-NEXT:    sw x10, -12(x8)87; RV32I-NUMERIC-NEXT:    sw x11, -16(x8)88; RV32I-NUMERIC-NEXT:    lw x10, -12(x8)89; RV32I-NUMERIC-NEXT:    lw x11, -16(x8)90; RV32I-NUMERIC-NEXT:    add x10, x10, x1191; RV32I-NUMERIC-NEXT:    lw x1, 12(x2) # 4-byte Folded Reload92; RV32I-NUMERIC-NEXT:    lw x8, 8(x2) # 4-byte Folded Reload93; RV32I-NUMERIC-NEXT:    addi x2, x2, 1694; RV32I-NUMERIC-NEXT:    ret95;96; RV64I-NUMERIC-LABEL: add:97; RV64I-NUMERIC:       # %bb.0:98; RV64I-NUMERIC-NEXT:    addi x2, x2, -3299; RV64I-NUMERIC-NEXT:    sd x1, 24(x2) # 8-byte Folded Spill100; RV64I-NUMERIC-NEXT:    sd x8, 16(x2) # 8-byte Folded Spill101; RV64I-NUMERIC-NEXT:    addi x8, x2, 32102; RV64I-NUMERIC-NEXT:    sw x10, -20(x8)103; RV64I-NUMERIC-NEXT:    sw x11, -24(x8)104; RV64I-NUMERIC-NEXT:    lw x10, -20(x8)105; RV64I-NUMERIC-NEXT:    lw x11, -24(x8)106; RV64I-NUMERIC-NEXT:    addw x10, x10, x11107; RV64I-NUMERIC-NEXT:    ld x1, 24(x2) # 8-byte Folded Reload108; RV64I-NUMERIC-NEXT:    ld x8, 16(x2) # 8-byte Folded Reload109; RV64I-NUMERIC-NEXT:    addi x2, x2, 32110; RV64I-NUMERIC-NEXT:    ret111  %3 = alloca i32, align 4112  %4 = alloca i32, align 4113  store i32 %0, ptr %3, align 4114  store i32 %1, ptr %4, align 4115  %5 = load i32, ptr %3, align 4116  %6 = load i32, ptr %4, align 4117  %7 = add nsw i32 %5, %6118  ret i32 %7119}120 121attributes #0 = { noinline nounwind optnone "frame-pointer"="all" }122