brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.0 KiB · 5fa2bdd Raw
129 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2;; Check that the function regex for VE works as expected.3; RUN: llc -mtriple=ve -exception-model=sjlj -relocation-model=static < %s | FileCheck %s4 5;; Check that we accept .Ldsolocal$local: below the function label.6; RUN: llc -mtriple=ve -exception-model=sjlj -relocation-model=pic < %s | FileCheck %s --check-prefix=PIC7 8 9@gv0 = dso_local global i32 0, align 410@gv1 = dso_preemptable global i32 0, align 411 12define hidden i32 @"_Z54bar$ompvariant$bar"() {13entry:14  ret i32 215}16 17define dso_local i32 @dsolocal() {18; CHECK-LABEL: dsolocal:19; CHECK:       # %bb.0: # %entry20; CHECK-NEXT:    st %s9, (, %s11)21; CHECK-NEXT:    st %s10, 8(, %s11)22; CHECK-NEXT:    or %s9, 0, %s1123; CHECK-NEXT:    lea %s11, -240(, %s11)24; CHECK-NEXT:    brge.l.t %s11, %s8, .LBB1_225; CHECK-NEXT:  # %bb.1: # %entry26; CHECK-NEXT:    ld %s61, 24(, %s14)27; CHECK-NEXT:    or %s62, 0, %s028; CHECK-NEXT:    lea %s63, 31529; CHECK-NEXT:    shm.l %s63, (%s61)30; CHECK-NEXT:    shm.l %s8, 8(%s61)31; CHECK-NEXT:    shm.l %s11, 16(%s61)32; CHECK-NEXT:    monc33; CHECK-NEXT:    or %s0, 0, %s6234; CHECK-NEXT:  .LBB1_2: # %entry35; CHECK-NEXT:    lea %s0, ext@lo36; CHECK-NEXT:    and %s0, %s0, (32)037; CHECK-NEXT:    lea.sl %s12, ext@hi(, %s0)38; CHECK-NEXT:    bsic %s10, (, %s12)39; CHECK-NEXT:    or %s0, 2, (0)140; CHECK-NEXT:    or %s11, 0, %s941; CHECK-NEXT:    ld %s10, 8(, %s11)42; CHECK-NEXT:    ld %s9, (, %s11)43; CHECK-NEXT:    b.l.t (, %s10)44;45; PIC-LABEL: dsolocal:46; PIC:       # %bb.0: # %entry47; PIC-NEXT:    st %s9, (, %s11)48; PIC-NEXT:    st %s10, 8(, %s11)49; PIC-NEXT:    st %s15, 24(, %s11)50; PIC-NEXT:    st %s16, 32(, %s11)51; PIC-NEXT:    or %s9, 0, %s1152; PIC-NEXT:    lea %s11, -240(, %s11)53; PIC-NEXT:    brge.l.t %s11, %s8, .LBB1_254; PIC-NEXT:  # %bb.1: # %entry55; PIC-NEXT:    ld %s61, 24(, %s14)56; PIC-NEXT:    or %s62, 0, %s057; PIC-NEXT:    lea %s63, 31558; PIC-NEXT:    shm.l %s63, (%s61)59; PIC-NEXT:    shm.l %s8, 8(%s61)60; PIC-NEXT:    shm.l %s11, 16(%s61)61; PIC-NEXT:    monc62; PIC-NEXT:    or %s0, 0, %s6263; PIC-NEXT:  .LBB1_2: # %entry64; PIC-NEXT:    lea %s15, _GLOBAL_OFFSET_TABLE_@pc_lo(-24)65; PIC-NEXT:    and %s15, %s15, (32)066; PIC-NEXT:    sic %s1667; PIC-NEXT:    lea.sl %s15, _GLOBAL_OFFSET_TABLE_@pc_hi(%s16, %s15)68; PIC-NEXT:    lea %s12, ext@plt_lo(-24)69; PIC-NEXT:    and %s12, %s12, (32)070; PIC-NEXT:    sic %s1671; PIC-NEXT:    lea.sl %s12, ext@plt_hi(%s16, %s12)72; PIC-NEXT:    bsic %s10, (, %s12)73; PIC-NEXT:    or %s0, 2, (0)174; PIC-NEXT:    or %s11, 0, %s975; PIC-NEXT:    ld %s16, 32(, %s11)76; PIC-NEXT:    ld %s15, 24(, %s11)77; PIC-NEXT:    ld %s10, 8(, %s11)78; PIC-NEXT:    ld %s9, (, %s11)79; PIC-NEXT:    b.l.t (, %s10)80entry:81  call void @ext()82  ret i32 283}84 85declare void @ext()86 87define i32 @load() {88; CHECK-LABEL: load:89; CHECK:       # %bb.0: # %entry90; CHECK-NEXT:    lea %s0, gv0@lo91; CHECK-NEXT:    and %s0, %s0, (32)092; CHECK-NEXT:    lea.sl %s0, gv0@hi(, %s0)93; CHECK-NEXT:    ldl.sx %s0, (, %s0)94; CHECK-NEXT:    lea %s1, gv1@lo95; CHECK-NEXT:    and %s1, %s1, (32)096; CHECK-NEXT:    lea.sl %s1, gv1@hi(, %s1)97; CHECK-NEXT:    ldl.sx %s1, (, %s1)98; CHECK-NEXT:    adds.w.sx %s0, %s0, %s199; CHECK-NEXT:    b.l.t (, %s10)100;101; PIC-LABEL: load:102; PIC:       # %bb.0: # %entry103; PIC-NEXT:    st %s15, 24(, %s11)104; PIC-NEXT:    st %s16, 32(, %s11)105; PIC-NEXT:    lea %s15, _GLOBAL_OFFSET_TABLE_@pc_lo(-24)106; PIC-NEXT:    and %s15, %s15, (32)0107; PIC-NEXT:    sic %s16108; PIC-NEXT:    lea.sl %s15, _GLOBAL_OFFSET_TABLE_@pc_hi(%s16, %s15)109; PIC-NEXT:    lea %s0, gv0@got_lo110; PIC-NEXT:    and %s0, %s0, (32)0111; PIC-NEXT:    lea.sl %s0, gv0@got_hi(, %s0)112; PIC-NEXT:    ld %s0, (%s0, %s15)113; PIC-NEXT:    lea %s1, gv1@got_lo114; PIC-NEXT:    and %s1, %s1, (32)0115; PIC-NEXT:    lea.sl %s1, gv1@got_hi(, %s1)116; PIC-NEXT:    ld %s1, (%s1, %s15)117; PIC-NEXT:    ldl.sx %s0, (, %s0)118; PIC-NEXT:    ldl.sx %s1, (, %s1)119; PIC-NEXT:    adds.w.sx %s0, %s0, %s1120; PIC-NEXT:    ld %s16, 32(, %s11)121; PIC-NEXT:    ld %s15, 24(, %s11)122; PIC-NEXT:    b.l.t (, %s10)123entry:124  %a = load i32, i32* @gv0125  %b = load i32, i32* @gv1126  %c = add i32 %a, %b127  ret i32 %c128}129