summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/SystemZ/int-const-01.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/SystemZ/int-const-01.ll')
-rw-r--r--llvm/test/CodeGen/SystemZ/int-const-01.ll22
1 files changed, 22 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/SystemZ/int-const-01.ll b/llvm/test/CodeGen/SystemZ/int-const-01.ll
index a580154e6b5..e714e9d1934 100644
--- a/llvm/test/CodeGen/SystemZ/int-const-01.ll
+++ b/llvm/test/CodeGen/SystemZ/int-const-01.ll
@@ -2,6 +2,8 @@
;
; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
+declare void @foo(i32, i32, i32, i32)
+
; Check 0.
define i32 @f1() {
; CHECK: f1:
@@ -89,3 +91,23 @@ define i32 @f11() {
; CHECK: br %r14
ret i32 -1
}
+
+; Check that constant loads are rematerialized.
+define i32 @f12() {
+; CHECK: f12:
+; CHECK-DAG: lhi %r2, 42
+; CHECK-DAG: llill %r3, 32768
+; CHECK-DAG: llilh %r4, 1
+; CHECK-DAG: iilf %r5, 65537
+; CHECK: brasl %r14, foo@PLT
+; CHECK-DAG: lhi %r2, 42
+; CHECK-DAG: llill %r3, 32768
+; CHECK-DAG: llilh %r4, 1
+; CHECK-DAG: iilf %r5, 65537
+; CHECK: brasl %r14, foo@PLT
+; CHECK: lhi %r2, 42
+; CHECK: br %r14
+ call void @foo(i32 42, i32 32768, i32 65536, i32 65537)
+ call void @foo(i32 42, i32 32768, i32 65536, i32 65537)
+ ret i32 42
+}
OpenPOWER on IntegriCloud