brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · e22541f Raw
84 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2 3; RUN: llc -verify-machineinstrs -csky-no-aliases < %s -mtriple=csky -float-abi=hard -mattr=+hard-float -mattr=+2e3 -mattr=+fpuv2_sf | FileCheck %s --check-prefix=CHECK-SF4; RUN: llc -verify-machineinstrs -csky-no-aliases < %s -mtriple=csky -float-abi=hard -mattr=+hard-float -mattr=+2e3 -mattr=+fpuv3_sf | FileCheck %s --check-prefix=CHECK-SF25 6define float @load_I_w(ptr nocapture readonly %a) local_unnamed_addr #0 {7;8; CHECK-SF-LABEL: load_I_w:9; CHECK-SF:       # %bb.0: # %entry10; CHECK-SF-NEXT:    flds vr0, (a0, 12)11; CHECK-SF-NEXT:    rts1612;13; CHECK-SF2-LABEL: load_I_w:14; CHECK-SF2:       # %bb.0: # %entry15; CHECK-SF2-NEXT:    fld.32 vr0, (a0, 12)16; CHECK-SF2-NEXT:    rts1617entry:18  %arrayidx = getelementptr inbounds float, ptr %a, i64 319  %0 = load float, ptr %arrayidx, align 420  ret float %021}22 23define float @load_R_w(ptr nocapture readonly %a, i32 %b) local_unnamed_addr #0 {24;25; CHECK-SF-LABEL: load_R_w:26; CHECK-SF:       # %bb.0: # %entry27; CHECK-SF-NEXT:    fldrs vr0, (a0, a1 << 2)28; CHECK-SF-NEXT:    rts1629;30; CHECK-SF2-LABEL: load_R_w:31; CHECK-SF2:       # %bb.0: # %entry32; CHECK-SF2-NEXT:    fldr.32 vr0, (a0, a1 << 2)33; CHECK-SF2-NEXT:    rts1634entry:35  %idxprom = sext i32 %b to i6436  %arrayidx = getelementptr inbounds float, ptr %a, i64 %idxprom37  %0 = load float, ptr %arrayidx, align 438  ret float %039}40 41 42define float @store_I_w(ptr  %a, float %b) local_unnamed_addr #0 {43;44; CHECK-SF-LABEL: store_I_w:45; CHECK-SF:       # %bb.0: # %entry46; CHECK-SF-NEXT:    fsts vr0, (a0, 12)47; CHECK-SF-NEXT:    movi16 a0, 048; CHECK-SF-NEXT:    fmtvrl vr0, a049; CHECK-SF-NEXT:    rts1650;51; CHECK-SF2-LABEL: store_I_w:52; CHECK-SF2:       # %bb.0: # %entry53; CHECK-SF2-NEXT:    fst.32 vr0, (a0, 12)54; CHECK-SF2-NEXT:    movi16 a0, 055; CHECK-SF2-NEXT:    fmtvr.32.1 vr0, a056; CHECK-SF2-NEXT:    rts1657entry:58  %arrayidx = getelementptr inbounds float, ptr %a, i64 359  store float %b, ptr %arrayidx, align 460  ret float 0.061}62 63define float @store_R_w(ptr  %a, i32 %b, float %c) local_unnamed_addr #0 {64;65; CHECK-SF-LABEL: store_R_w:66; CHECK-SF:       # %bb.0: # %entry67; CHECK-SF-NEXT:    fstrs vr0, (a0, a1 << 2)68; CHECK-SF-NEXT:    movi16 a0, 069; CHECK-SF-NEXT:    fmtvrl vr0, a070; CHECK-SF-NEXT:    rts1671;72; CHECK-SF2-LABEL: store_R_w:73; CHECK-SF2:       # %bb.0: # %entry74; CHECK-SF2-NEXT:    fstr.32 vr0, (a0, a1 << 2)75; CHECK-SF2-NEXT:    movi16 a0, 076; CHECK-SF2-NEXT:    fmtvr.32.1 vr0, a077; CHECK-SF2-NEXT:    rts1678entry:79  %idxprom = sext i32 %b to i6480  %arrayidx = getelementptr inbounds float, ptr %a, i64 %idxprom81  store float %c, ptr %arrayidx, align 482  ret float 0.083}84