brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.6 KiB · cee0449 Raw
211 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 42; RUN: llc < %s -mtriple=riscv32 -global-isel -code-model=small \3; RUN:   -verify-machineinstrs | FileCheck %s --check-prefix=RV32-SMALL4; RUN: llc < %s -mtriple=riscv32 -global-isel -code-model=medium \5; RUN:   -verify-machineinstrs | FileCheck %s --check-prefix=RV32-MEDIUM6; RUN: llc < %s -mtriple=riscv32 -global-isel -relocation-model=pic \7; RUN:   -verify-machineinstrs | FileCheck %s --check-prefix=RV32-PIC8; RUN: llc < %s -mtriple=riscv64 -global-isel -code-model=small \9; RUN:   -verify-machineinstrs | FileCheck %s --check-prefix=RV64-SMALL10; RUN: llc < %s -mtriple=riscv64 -global-isel -code-model=medium \11; RUN:   -verify-machineinstrs | FileCheck %s --check-prefix=RV64-MEDIUM12; RUN: llc < %s -mtriple=riscv64 -global-isel -relocation-model=pic \13; RUN:   -verify-machineinstrs | FileCheck %s --check-prefix=RV64-PIC14 15define void @constpool_f32(ptr %p) {16; RV32-SMALL-LABEL: constpool_f32:17; RV32-SMALL:       # %bb.0:18; RV32-SMALL-NEXT:    lui a1, 26009619; RV32-SMALL-NEXT:    sw a1, 0(a0)20; RV32-SMALL-NEXT:    ret21;22; RV32-MEDIUM-LABEL: constpool_f32:23; RV32-MEDIUM:       # %bb.0:24; RV32-MEDIUM-NEXT:    lui a1, 26009625; RV32-MEDIUM-NEXT:    sw a1, 0(a0)26; RV32-MEDIUM-NEXT:    ret27;28; RV32-PIC-LABEL: constpool_f32:29; RV32-PIC:       # %bb.0:30; RV32-PIC-NEXT:    lui a1, 26009631; RV32-PIC-NEXT:    sw a1, 0(a0)32; RV32-PIC-NEXT:    ret33;34; RV64-SMALL-LABEL: constpool_f32:35; RV64-SMALL:       # %bb.0:36; RV64-SMALL-NEXT:    lui a1, 26009637; RV64-SMALL-NEXT:    sw a1, 0(a0)38; RV64-SMALL-NEXT:    ret39;40; RV64-MEDIUM-LABEL: constpool_f32:41; RV64-MEDIUM:       # %bb.0:42; RV64-MEDIUM-NEXT:    lui a1, 26009643; RV64-MEDIUM-NEXT:    sw a1, 0(a0)44; RV64-MEDIUM-NEXT:    ret45;46; RV64-PIC-LABEL: constpool_f32:47; RV64-PIC:       # %bb.0:48; RV64-PIC-NEXT:    lui a1, 26009649; RV64-PIC-NEXT:    sw a1, 0(a0)50; RV64-PIC-NEXT:    ret51  store float 1.0, ptr %p52  ret void53}54 55define void @constpool_f64(ptr %p) {56; RV32-SMALL-LABEL: constpool_f64:57; RV32-SMALL:       # %bb.0:58; RV32-SMALL-NEXT:    lui a1, %hi(.LCPI1_0)59; RV32-SMALL-NEXT:    addi a1, a1, %lo(.LCPI1_0)60; RV32-SMALL-NEXT:    lw a2, 0(a1)61; RV32-SMALL-NEXT:    lw a1, 4(a1)62; RV32-SMALL-NEXT:    sw a2, 0(a0)63; RV32-SMALL-NEXT:    sw a1, 4(a0)64; RV32-SMALL-NEXT:    ret65;66; RV32-MEDIUM-LABEL: constpool_f64:67; RV32-MEDIUM:       # %bb.0:68; RV32-MEDIUM-NEXT:  .Lpcrel_hi0:69; RV32-MEDIUM-NEXT:    auipc a1, %pcrel_hi(.LCPI1_0)70; RV32-MEDIUM-NEXT:    addi a1, a1, %pcrel_lo(.Lpcrel_hi0)71; RV32-MEDIUM-NEXT:    lw a2, 0(a1)72; RV32-MEDIUM-NEXT:    lw a1, 4(a1)73; RV32-MEDIUM-NEXT:    sw a2, 0(a0)74; RV32-MEDIUM-NEXT:    sw a1, 4(a0)75; RV32-MEDIUM-NEXT:    ret76;77; RV32-PIC-LABEL: constpool_f64:78; RV32-PIC:       # %bb.0:79; RV32-PIC-NEXT:  .Lpcrel_hi0:80; RV32-PIC-NEXT:    auipc a1, %pcrel_hi(.LCPI1_0)81; RV32-PIC-NEXT:    addi a1, a1, %pcrel_lo(.Lpcrel_hi0)82; RV32-PIC-NEXT:    lw a2, 0(a1)83; RV32-PIC-NEXT:    lw a1, 4(a1)84; RV32-PIC-NEXT:    sw a2, 0(a0)85; RV32-PIC-NEXT:    sw a1, 4(a0)86; RV32-PIC-NEXT:    ret87;88; RV64-SMALL-LABEL: constpool_f64:89; RV64-SMALL:       # %bb.0:90; RV64-SMALL-NEXT:    li a1, 102391; RV64-SMALL-NEXT:    slli a1, a1, 5292; RV64-SMALL-NEXT:    sd a1, 0(a0)93; RV64-SMALL-NEXT:    ret94;95; RV64-MEDIUM-LABEL: constpool_f64:96; RV64-MEDIUM:       # %bb.0:97; RV64-MEDIUM-NEXT:    li a1, 102398; RV64-MEDIUM-NEXT:    slli a1, a1, 5299; RV64-MEDIUM-NEXT:    sd a1, 0(a0)100; RV64-MEDIUM-NEXT:    ret101;102; RV64-PIC-LABEL: constpool_f64:103; RV64-PIC:       # %bb.0:104; RV64-PIC-NEXT:    li a1, 1023105; RV64-PIC-NEXT:    slli a1, a1, 52106; RV64-PIC-NEXT:    sd a1, 0(a0)107; RV64-PIC-NEXT:    ret108  store double 1.0, ptr %p109  ret void110}111 112define void @constpool_f32_1234_5(ptr %p) {113; RV32-SMALL-LABEL: constpool_f32_1234_5:114; RV32-SMALL:       # %bb.0:115; RV32-SMALL-NEXT:    lui a1, 280997116; RV32-SMALL-NEXT:    sw a1, 0(a0)117; RV32-SMALL-NEXT:    ret118;119; RV32-MEDIUM-LABEL: constpool_f32_1234_5:120; RV32-MEDIUM:       # %bb.0:121; RV32-MEDIUM-NEXT:    lui a1, 280997122; RV32-MEDIUM-NEXT:    sw a1, 0(a0)123; RV32-MEDIUM-NEXT:    ret124;125; RV32-PIC-LABEL: constpool_f32_1234_5:126; RV32-PIC:       # %bb.0:127; RV32-PIC-NEXT:    lui a1, 280997128; RV32-PIC-NEXT:    sw a1, 0(a0)129; RV32-PIC-NEXT:    ret130;131; RV64-SMALL-LABEL: constpool_f32_1234_5:132; RV64-SMALL:       # %bb.0:133; RV64-SMALL-NEXT:    lui a1, 280997134; RV64-SMALL-NEXT:    sw a1, 0(a0)135; RV64-SMALL-NEXT:    ret136;137; RV64-MEDIUM-LABEL: constpool_f32_1234_5:138; RV64-MEDIUM:       # %bb.0:139; RV64-MEDIUM-NEXT:    lui a1, 280997140; RV64-MEDIUM-NEXT:    sw a1, 0(a0)141; RV64-MEDIUM-NEXT:    ret142;143; RV64-PIC-LABEL: constpool_f32_1234_5:144; RV64-PIC:       # %bb.0:145; RV64-PIC-NEXT:    lui a1, 280997146; RV64-PIC-NEXT:    sw a1, 0(a0)147; RV64-PIC-NEXT:    ret148  store float 1.234500e+03, ptr %p149  ret void150}151 152define void @constpool_f64_1234_5(ptr %p) {153; RV32-SMALL-LABEL: constpool_f64_1234_5:154; RV32-SMALL:       # %bb.0:155; RV32-SMALL-NEXT:    lui a1, %hi(.LCPI3_0)156; RV32-SMALL-NEXT:    addi a1, a1, %lo(.LCPI3_0)157; RV32-SMALL-NEXT:    lw a2, 0(a1)158; RV32-SMALL-NEXT:    lw a1, 4(a1)159; RV32-SMALL-NEXT:    sw a2, 0(a0)160; RV32-SMALL-NEXT:    sw a1, 4(a0)161; RV32-SMALL-NEXT:    ret162;163; RV32-MEDIUM-LABEL: constpool_f64_1234_5:164; RV32-MEDIUM:       # %bb.0:165; RV32-MEDIUM-NEXT:  .Lpcrel_hi1:166; RV32-MEDIUM-NEXT:    auipc a1, %pcrel_hi(.LCPI3_0)167; RV32-MEDIUM-NEXT:    addi a1, a1, %pcrel_lo(.Lpcrel_hi1)168; RV32-MEDIUM-NEXT:    lw a2, 0(a1)169; RV32-MEDIUM-NEXT:    lw a1, 4(a1)170; RV32-MEDIUM-NEXT:    sw a2, 0(a0)171; RV32-MEDIUM-NEXT:    sw a1, 4(a0)172; RV32-MEDIUM-NEXT:    ret173;174; RV32-PIC-LABEL: constpool_f64_1234_5:175; RV32-PIC:       # %bb.0:176; RV32-PIC-NEXT:  .Lpcrel_hi1:177; RV32-PIC-NEXT:    auipc a1, %pcrel_hi(.LCPI3_0)178; RV32-PIC-NEXT:    addi a1, a1, %pcrel_lo(.Lpcrel_hi1)179; RV32-PIC-NEXT:    lw a2, 0(a1)180; RV32-PIC-NEXT:    lw a1, 4(a1)181; RV32-PIC-NEXT:    sw a2, 0(a0)182; RV32-PIC-NEXT:    sw a1, 4(a0)183; RV32-PIC-NEXT:    ret184;185; RV64-SMALL-LABEL: constpool_f64_1234_5:186; RV64-SMALL:       # %bb.0:187; RV64-SMALL-NEXT:    lui a1, 517188; RV64-SMALL-NEXT:    addi a1, a1, -1627189; RV64-SMALL-NEXT:    slli a1, a1, 41190; RV64-SMALL-NEXT:    sd a1, 0(a0)191; RV64-SMALL-NEXT:    ret192;193; RV64-MEDIUM-LABEL: constpool_f64_1234_5:194; RV64-MEDIUM:       # %bb.0:195; RV64-MEDIUM-NEXT:    lui a1, 517196; RV64-MEDIUM-NEXT:    addi a1, a1, -1627197; RV64-MEDIUM-NEXT:    slli a1, a1, 41198; RV64-MEDIUM-NEXT:    sd a1, 0(a0)199; RV64-MEDIUM-NEXT:    ret200;201; RV64-PIC-LABEL: constpool_f64_1234_5:202; RV64-PIC:       # %bb.0:203; RV64-PIC-NEXT:    lui a1, 517204; RV64-PIC-NEXT:    addi a1, a1, -1627205; RV64-PIC-NEXT:    slli a1, a1, 41206; RV64-PIC-NEXT:    sd a1, 0(a0)207; RV64-PIC-NEXT:    ret208  store double 1.234500e+03, ptr %p209  ret void210}211