aboutsummaryrefslogtreecommitdiff
path: root/llvm/test/CodeGen/LoongArch/global-variable-code-model.ll
diff options
context:
space:
mode:
authorVitaly Buka <vitalybuka@google.com>2024-01-08 11:48:45 -0800
committerVitaly Buka <vitalybuka@google.com>2024-01-08 11:48:45 -0800
commitb2845d6945cf560e26f98128d06b22e85953612d (patch)
tree9a868b16f59dd198c831a1e7f3921efd7dc7d745 /llvm/test/CodeGen/LoongArch/global-variable-code-model.ll
parentc7e4065aad78f77d61be1d1ac674546cc62208d1 (diff)
parente7655ad605d77e206ec94b2cef59c41a508edba7 (diff)
downloadllvm-b2845d6945cf560e26f98128d06b22e85953612d.zip
llvm-b2845d6945cf560e26f98128d06b22e85953612d.tar.gz
llvm-b2845d6945cf560e26f98128d06b22e85953612d.tar.bz2
[𝘀𝗽𝗿] changes introduced through rebaseusers/vitalybuka/spr/main.msan-unwind-stack-before-fatal-reports
Created using spr 1.3.4 [skip ci]
Diffstat (limited to 'llvm/test/CodeGen/LoongArch/global-variable-code-model.ll')
-rw-r--r--llvm/test/CodeGen/LoongArch/global-variable-code-model.ll44
1 files changed, 44 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/LoongArch/global-variable-code-model.ll b/llvm/test/CodeGen/LoongArch/global-variable-code-model.ll
new file mode 100644
index 0000000..aa47808
--- /dev/null
+++ b/llvm/test/CodeGen/LoongArch/global-variable-code-model.ll
@@ -0,0 +1,44 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc --mtriple=loongarch64 < %s | FileCheck %s
+
+@a= external dso_local global i32, code_model "small", align 4
+
+define dso_local signext i32 @local_small() #0 {
+; CHECK-LABEL: local_small:
+; CHECK: # %bb.0:
+; CHECK-NEXT: pcalau12i $a0, %pc_hi20(a)
+; CHECK-NEXT: addi.d $a0, $a0, %pc_lo12(a)
+; CHECK-NEXT: ld.w $a0, $a0, 0
+; CHECK-NEXT: ret
+ %1 = load i32, ptr @a, align 4
+ ret i32 %1
+}
+
+@b= external dso_local global i32, code_model "large", align 4
+
+define dso_local signext i32 @local_large() #0 {
+; CHECK-LABEL: local_large:
+; CHECK: # %bb.0:
+; CHECK-NEXT: pcalau12i $a0, %pc_hi20(b)
+; CHECK-NEXT: addi.d $t8, $zero, %pc_lo12(b)
+; CHECK-NEXT: lu32i.d $t8, %pc64_lo20(b)
+; CHECK-NEXT: lu52i.d $t8, $t8, %pc64_hi12(b)
+; CHECK-NEXT: add.d $a0, $t8, $a0
+; CHECK-NEXT: ld.w $a0, $a0, 0
+; CHECK-NEXT: ret
+ %1 = load i32, ptr @b, align 4
+ ret i32 %1
+}
+
+@c= external global i32, code_model "large", align 4
+
+define dso_local signext i32 @non_local_large() #0 {
+; CHECK-LABEL: non_local_large:
+; CHECK: # %bb.0:
+; CHECK-NEXT: pcalau12i $a0, %got_pc_hi20(c)
+; CHECK-NEXT: ld.d $a0, $a0, %got_pc_lo12(c)
+; CHECK-NEXT: ld.w $a0, $a0, 0
+; CHECK-NEXT: ret
+ %1 = load i32, ptr @c, align 4
+ ret i32 %1
+}