[llvm] 2cdf422 - [update_llc_test_checks][VE] Add baseline test for PIC function regex

Alex Richardson via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 24 07:17:52 PDT 2022


Author: Alex Richardson
Date: 2022-08-24T14:16:20Z
New Revision: 2cdf4225aab6976569127406ed917d4a0d826278

URL: https://github.com/llvm/llvm-project/commit/2cdf4225aab6976569127406ed917d4a0d826278
DIFF: https://github.com/llvm/llvm-project/commit/2cdf4225aab6976569127406ed917d4a0d826278.diff

LOG: [update_llc_test_checks][VE] Add baseline test for PIC function regex

While working on https://reviews.llvm.org/D131429, I got a test diff in
one of the VE tests and running update_llc_test_checks.py deleted all the
code for that function. This is a baseline test for this bug (incorrect
regex for VE when .Lfoo$local symbols are used).

Reviewed By: kaz7

Differential Revision: https://reviews.llvm.org/D131434

Added: 
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ve-basic.ll
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ve-basic.ll.expected
    llvm/test/tools/UpdateTestChecks/update_llc_test_checks/ve-basic.test

Modified: 
    

Removed: 
    


################################################################################
diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ve-basic.ll b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ve-basic.ll
new file mode 100644
index 0000000000000..7d292f2db1e11
--- /dev/null
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ve-basic.ll
@@ -0,0 +1,30 @@
+;; Check that the function regex for VE works as expected.
+; RUN: llc -mtriple=ve -exception-model=sjlj -relocation-model=static < %s | FileCheck %s
+
+;; Check that we accept .Ldsolocal$local: below the function label.
+; RUN: llc -mtriple=ve -exception-model=sjlj -relocation-model=pic < %s | FileCheck %s --check-prefix=PIC
+
+
+ at gv0 = dso_local global i32 0, align 4
+ at gv1 = dso_preemptable global i32 0, align 4
+
+define hidden i32 @"_Z54bar$ompvariant$bar"() {
+entry:
+  ret i32 2
+}
+
+define dso_local i32 @dsolocal() {
+entry:
+  call void @ext()
+  ret i32 2
+}
+
+declare void @ext()
+
+define i32 @load() {
+entry:
+  %a = load i32, i32* @gv0
+  %b = load i32, i32* @gv1
+  %c = add i32 %a, %b
+  ret i32 %c
+}

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ve-basic.ll.expected b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ve-basic.ll.expected
new file mode 100644
index 0000000000000..5296c3f9792f3
--- /dev/null
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/ve-basic.ll.expected
@@ -0,0 +1,92 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+;; Check that the function regex for VE works as expected.
+; RUN: llc -mtriple=ve -exception-model=sjlj -relocation-model=static < %s | FileCheck %s
+
+;; Check that we accept .Ldsolocal$local: below the function label.
+; RUN: llc -mtriple=ve -exception-model=sjlj -relocation-model=pic < %s | FileCheck %s --check-prefix=PIC
+
+
+ at gv0 = dso_local global i32 0, align 4
+ at gv1 = dso_preemptable global i32 0, align 4
+
+define hidden i32 @"_Z54bar$ompvariant$bar"() {
+entry:
+  ret i32 2
+}
+
+define dso_local i32 @dsolocal() {
+; CHECK-LABEL: dsolocal:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    st %s9, (, %s11)
+; CHECK-NEXT:    st %s10, 8(, %s11)
+; CHECK-NEXT:    or %s9, 0, %s11
+; CHECK-NEXT:    lea %s11, -240(, %s11)
+; CHECK-NEXT:    brge.l.t %s11, %s8, .LBB1_2
+; CHECK-NEXT:  # %bb.1: # %entry
+; CHECK-NEXT:    ld %s61, 24(, %s14)
+; CHECK-NEXT:    or %s62, 0, %s0
+; CHECK-NEXT:    lea %s63, 315
+; CHECK-NEXT:    shm.l %s63, (%s61)
+; CHECK-NEXT:    shm.l %s8, 8(%s61)
+; CHECK-NEXT:    shm.l %s11, 16(%s61)
+; CHECK-NEXT:    monc
+; CHECK-NEXT:    or %s0, 0, %s62
+; CHECK-NEXT:  .LBB1_2: # %entry
+; CHECK-NEXT:    lea %s0, ext at lo
+; CHECK-NEXT:    and %s0, %s0, (32)0
+; CHECK-NEXT:    lea.sl %s12, ext at hi(, %s0)
+; CHECK-NEXT:    bsic %s10, (, %s12)
+; CHECK-NEXT:    or %s0, 2, (0)1
+; CHECK-NEXT:    or %s11, 0, %s9
+; CHECK-NEXT:    ld %s10, 8(, %s11)
+; CHECK-NEXT:    ld %s9, (, %s11)
+; CHECK-NEXT:    b.l.t (, %s10)
+entry:
+  call void @ext()
+  ret i32 2
+}
+
+declare void @ext()
+
+define i32 @load() {
+; CHECK-LABEL: load:
+; CHECK:       # %bb.0: # %entry
+; CHECK-NEXT:    lea %s0, gv0 at lo
+; CHECK-NEXT:    and %s0, %s0, (32)0
+; CHECK-NEXT:    lea.sl %s0, gv0 at hi(, %s0)
+; CHECK-NEXT:    ldl.sx %s0, (, %s0)
+; CHECK-NEXT:    lea %s1, gv1 at lo
+; CHECK-NEXT:    and %s1, %s1, (32)0
+; CHECK-NEXT:    lea.sl %s1, gv1 at hi(, %s1)
+; CHECK-NEXT:    ldl.sx %s1, (, %s1)
+; CHECK-NEXT:    adds.w.sx %s0, %s0, %s1
+; CHECK-NEXT:    b.l.t (, %s10)
+;
+; PIC-LABEL: load:
+; PIC:       # %bb.0: # %entry
+; PIC-NEXT:    st %s15, 24(, %s11)
+; PIC-NEXT:    st %s16, 32(, %s11)
+; PIC-NEXT:    lea %s15, _GLOBAL_OFFSET_TABLE_ at pc_lo(-24)
+; PIC-NEXT:    and %s15, %s15, (32)0
+; PIC-NEXT:    sic %s16
+; PIC-NEXT:    lea.sl %s15, _GLOBAL_OFFSET_TABLE_ at pc_hi(%s16, %s15)
+; PIC-NEXT:    lea %s0, gv0 at got_lo
+; PIC-NEXT:    and %s0, %s0, (32)0
+; PIC-NEXT:    lea.sl %s0, gv0 at got_hi(, %s0)
+; PIC-NEXT:    ld %s0, (%s0, %s15)
+; PIC-NEXT:    lea %s1, gv1 at got_lo
+; PIC-NEXT:    and %s1, %s1, (32)0
+; PIC-NEXT:    lea.sl %s1, gv1 at got_hi(, %s1)
+; PIC-NEXT:    ld %s1, (%s1, %s15)
+; PIC-NEXT:    ldl.sx %s0, (, %s0)
+; PIC-NEXT:    ldl.sx %s1, (, %s1)
+; PIC-NEXT:    adds.w.sx %s0, %s0, %s1
+; PIC-NEXT:    ld %s16, 32(, %s11)
+; PIC-NEXT:    ld %s15, 24(, %s11)
+; PIC-NEXT:    b.l.t (, %s10)
+entry:
+  %a = load i32, i32* @gv0
+  %b = load i32, i32* @gv1
+  %c = add i32 %a, %b
+  ret i32 %c
+}

diff  --git a/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/ve-basic.test b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/ve-basic.test
new file mode 100644
index 0000000000000..b7d951f5d3850
--- /dev/null
+++ b/llvm/test/tools/UpdateTestChecks/update_llc_test_checks/ve-basic.test
@@ -0,0 +1,5 @@
+# REQUIRES: ve-registered-target
+## Check that the function regex for VE works as expected.
+
+# RUN: cp -f %S/Inputs/ve-basic.ll %t.ll && %update_llc_test_checks %t.ll
+# RUN: 
diff  -u %S/Inputs/ve-basic.ll.expected %t.ll


        


More information about the llvm-commits mailing list