[llvm] [AIX] Support per global code model. (PR #79202)
zhijian lin via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 21 12:51:59 PST 2024
================
@@ -58,6 +59,32 @@ entry:
; CHECK: lwz 3, 0([[ADDR]])
; CHECK: blr
+define i32 @E() {
+entry:
+ %0 = load i32, ptr @e, align 4
+ ret i32 %0
+}
+; CHECK-LARGE: addis [[HI:[0-9]+]], L..C[[TL_E:[0-9]+]]@u(2)
+; CHECK-LARGE32: lwz [[SCRATCH:[0-9]+]], L..C[[TL_E]]@l([[HI]])
+; CHECK-SMALL32: lwz [[SCRATCH:[0-9]+]], L..C[[TL_E:[0-9]+]](2)
+; CHECK-LARGE64: ld [[SCRATCH:[0-9]+]], L..C[[TL_E]]@l([[HI]])
+; CHECK-SMALL64: ld [[SCRATCH:[0-9]+]], L..C[[TL_E:[0-9]+]](2)
+; CHECK: lwz 3, 0([[SCRATCH]])
+; CHECK: blr
+
+define i32 @F() {
+entry:
+ %0 = load i32, ptr @f, align 4
+ ret i32 %0
+}
+; CHECK-LARGE: addis [[HI:[0-9]+]], L..C[[TL_F:[0-9]+]]@u(2)
+; CHECK-LARGE32: lwz [[SCRATCH:[0-9]+]], L..C[[TL_F]]@l([[HI]])
+; CHECK-SMALL32: lwz [[SCRATCH:[0-9]+]], L..C[[TL_F:[0-9]+]](2)
+; CHECK-LARGE64: ld [[SCRATCH:[0-9]+]], L..C[[TL_F]]@l([[HI]])
+; CHECK-SMALL64: ld [[SCRATCH:[0-9]+]], L..C[[TL_F:[0-9]+]](2)
+; CHECK: lwz 3, 0([[SCRATCH]])
----------------
diggerlin wrote:
since the only different of 32bit and 64 bit is `lwz` and `ld`
for example:
CHECK-LARGE32: lwz [[SCRATCH:[0-9]+]], L..C[[TL_F]]@l([[HI]])
CHECK-LARGE64: ld [[SCRATCH:[0-9]+]], L..C[[TL_F]]@l([[HI]])
I will change like as following to make the test case simple.
RUN: %s | FileCheck --check-prefixes=CHECK,CHECK32,CHECK-LARGE,CHECK-LARGE32
to
RUN: %s | FileCheck -DINSTR=lwz --check-prefixes=CHECK,CHECK32,CHECK-LARGE
CHECK-LARGE: [[INSTR]] [[SCRATCH:[0-9]+]], L..C[[TL_F]]@l([[HI]]
https://github.com/llvm/llvm-project/pull/79202
More information about the llvm-commits
mailing list