Remove the SystemZ backend.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142878 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Gohman
2011-10-24 23:48:32 +00:00
parent b36e03d987
commit 29074ccf6c
117 changed files with 12 additions and 8826 deletions
-6
View File
@@ -1,6 +0,0 @@
; RUN: llc < %s -march=systemz
define void @foo() {
entry:
ret void
}
-6
View File
@@ -1,6 +0,0 @@
; RUN: llc < %s -march=systemz
define i64 @foo(i64 %a, i64 %b) {
entry:
ret i64 %b
}
-49
View File
@@ -1,49 +0,0 @@
; RUN: llc < %s -march=systemz | grep lghi | count 1
; RUN: llc < %s -march=systemz | grep llill | count 1
; RUN: llc < %s -march=systemz | grep llilh | count 1
; RUN: llc < %s -march=systemz | grep llihl | count 1
; RUN: llc < %s -march=systemz | grep llihh | count 1
; RUN: llc < %s -march=systemz | grep lgfi | count 1
; RUN: llc < %s -march=systemz | grep llilf | count 1
; RUN: llc < %s -march=systemz | grep llihf | count 1
define i64 @foo1() {
entry:
ret i64 1
}
define i64 @foo2() {
entry:
ret i64 65535
}
define i64 @foo3() {
entry:
ret i64 131072
}
define i64 @foo4() {
entry:
ret i64 8589934592
}
define i64 @foo5() {
entry:
ret i64 562949953421312
}
define i64 @foo6() {
entry:
ret i64 65537
}
define i64 @foo7() {
entry:
ret i64 4294967295
}
define i64 @foo8() {
entry:
ret i64 281483566645248
}
-133
View File
@@ -1,133 +0,0 @@
; RUN: llc < %s -march=systemz | FileCheck %s
define signext i32 @foo1(i32 %a, i32 *%b, i64 %idx) {
; CHECK: foo1:
; CHECK: a %r2, 4(%r1,%r3)
entry:
%idx2 = add i64 %idx, 1 ; <i64> [#uses=1]
%ptr = getelementptr i32* %b, i64 %idx2 ; <i32*> [#uses=1]
%c = load i32* %ptr
%d = add i32 %a, %c
ret i32 %d
}
define signext i32 @foo2(i32 %a, i32 *%b, i64 %idx) {
; CHECK: foo2:
; CHECK: ay %r2, -4(%r1,%r3)
entry:
%idx2 = add i64 %idx, -1 ; <i64> [#uses=1]
%ptr = getelementptr i32* %b, i64 %idx2 ; <i32*> [#uses=1]
%c = load i32* %ptr
%d = add i32 %a, %c
ret i32 %d
}
define signext i64 @foo3(i64 %a, i64 *%b, i64 %idx) {
; CHECK: foo3:
; CHECK: ag %r2, 8(%r1,%r3)
entry:
%idx2 = add i64 %idx, 1 ; <i64> [#uses=1]
%ptr = getelementptr i64* %b, i64 %idx2 ; <i64*> [#uses=1]
%c = load i64* %ptr
%d = add i64 %a, %c
ret i64 %d
}
define signext i32 @foo4(i32 %a, i32 *%b, i64 %idx) {
; CHECK: foo4:
; CHECK: n %r2, 4(%r1,%r3)
entry:
%idx2 = add i64 %idx, 1 ; <i64> [#uses=1]
%ptr = getelementptr i32* %b, i64 %idx2 ; <i32*> [#uses=1]
%c = load i32* %ptr
%d = and i32 %a, %c
ret i32 %d
}
define signext i32 @foo5(i32 %a, i32 *%b, i64 %idx) {
; CHECK: foo5:
; CHECK: ny %r2, -4(%r1,%r3)
entry:
%idx2 = add i64 %idx, -1 ; <i64> [#uses=1]
%ptr = getelementptr i32* %b, i64 %idx2 ; <i32*> [#uses=1]
%c = load i32* %ptr
%d = and i32 %a, %c
ret i32 %d
}
define signext i64 @foo6(i64 %a, i64 *%b, i64 %idx) {
; CHECK: foo6:
; CHECK: ng %r2, 8(%r1,%r3)
entry:
%idx2 = add i64 %idx, 1 ; <i64> [#uses=1]
%ptr = getelementptr i64* %b, i64 %idx2 ; <i64*> [#uses=1]
%c = load i64* %ptr
%d = and i64 %a, %c
ret i64 %d
}
define signext i32 @foo7(i32 %a, i32 *%b, i64 %idx) {
; CHECK: foo7:
; CHECK: o %r2, 4(%r1,%r3)
entry:
%idx2 = add i64 %idx, 1 ; <i64> [#uses=1]
%ptr = getelementptr i32* %b, i64 %idx2 ; <i32*> [#uses=1]
%c = load i32* %ptr
%d = or i32 %a, %c
ret i32 %d
}
define signext i32 @foo8(i32 %a, i32 *%b, i64 %idx) {
; CHECK: foo8:
; CHECK: oy %r2, -4(%r1,%r3)
entry:
%idx2 = add i64 %idx, -1 ; <i64> [#uses=1]
%ptr = getelementptr i32* %b, i64 %idx2 ; <i32*> [#uses=1]
%c = load i32* %ptr
%d = or i32 %a, %c
ret i32 %d
}
define signext i64 @foo9(i64 %a, i64 *%b, i64 %idx) {
; CHECK: foo9:
; CHECK: og %r2, 8(%r1,%r3)
entry:
%idx2 = add i64 %idx, 1 ; <i64> [#uses=1]
%ptr = getelementptr i64* %b, i64 %idx2 ; <i64*> [#uses=1]
%c = load i64* %ptr
%d = or i64 %a, %c
ret i64 %d
}
define signext i32 @foo10(i32 %a, i32 *%b, i64 %idx) {
; CHECK: foo10:
; CHECK: x %r2, 4(%r1,%r3)
entry:
%idx2 = add i64 %idx, 1 ; <i64> [#uses=1]
%ptr = getelementptr i32* %b, i64 %idx2 ; <i32*> [#uses=1]
%c = load i32* %ptr
%d = xor i32 %a, %c
ret i32 %d
}
define signext i32 @foo11(i32 %a, i32 *%b, i64 %idx) {
; CHECK: foo11:
; CHECK: xy %r2, -4(%r1,%r3)
entry:
%idx2 = add i64 %idx, -1 ; <i64> [#uses=1]
%ptr = getelementptr i32* %b, i64 %idx2 ; <i32*> [#uses=1]
%c = load i32* %ptr
%d = xor i32 %a, %c
ret i32 %d
}
define signext i64 @foo12(i64 %a, i64 *%b, i64 %idx) {
; CHECK: foo12:
; CHECK: xg %r2, 8(%r1,%r3)
entry:
%idx2 = add i64 %idx, 1 ; <i64> [#uses=1]
%ptr = getelementptr i64* %b, i64 %idx2 ; <i64*> [#uses=1]
%c = load i64* %ptr
%d = xor i64 %a, %c
ret i64 %d
}
-6
View File
@@ -1,6 +0,0 @@
; RUN: llc < %s -march=systemz
define i64 @foo(i64 %a, i64 %b) {
entry:
%c = add i64 %a, %b
ret i64 %c
}
-6
View File
@@ -1,6 +0,0 @@
; RUN: llc < %s -march=systemz
define i64 @foo(i64 %a, i64 %b) {
entry:
%c = add i64 %a, 1
ret i64 %c
}
-7
View File
@@ -1,7 +0,0 @@
; RUN: llc < %s -march=systemz
define i64 @foo(i64 %a, i64 %b) {
entry:
%c = and i64 %a, %b
ret i64 %c
}
-28
View File
@@ -1,28 +0,0 @@
; RUN: llc < %s -march=systemz | grep ngr | count 4
; RUN: llc < %s -march=systemz | grep llilh | count 1
; RUN: llc < %s -march=systemz | grep llihl | count 1
; RUN: llc < %s -march=systemz | grep llihh | count 1
define i64 @foo1(i64 %a, i64 %b) {
entry:
%c = and i64 %a, 1
ret i64 %c
}
define i64 @foo2(i64 %a, i64 %b) {
entry:
%c = and i64 %a, 131072
ret i64 %c
}
define i64 @foo3(i64 %a, i64 %b) {
entry:
%c = and i64 %a, 8589934592
ret i64 %c
}
define i64 @foo4(i64 %a, i64 %b) {
entry:
%c = and i64 %a, 562949953421312
ret i64 %c
}
-7
View File
@@ -1,7 +0,0 @@
; RUN: llc < %s -march=systemz | grep lcgr | count 1
define i64 @foo(i64 %a) {
entry:
%c = sub i64 0, %a
ret i64 %c
}
-6
View File
@@ -1,6 +0,0 @@
; RUN: llc < %s -march=systemz
define i64 @foo(i64 %a, i64 %b) {
entry:
%c = or i64 %a, %b
ret i64 %c
}
-28
View File
@@ -1,28 +0,0 @@
; RUN: llc < %s -march=systemz | grep oill | count 1
; RUN: llc < %s -march=systemz | grep oilh | count 1
; RUN: llc < %s -march=systemz | grep oihl | count 1
; RUN: llc < %s -march=systemz | grep oihh | count 1
define i64 @foo1(i64 %a, i64 %b) {
entry:
%c = or i64 %a, 1
ret i64 %c
}
define i64 @foo2(i64 %a, i64 %b) {
entry:
%c = or i64 %a, 131072
ret i64 %c
}
define i64 @foo3(i64 %a, i64 %b) {
entry:
%c = or i64 %a, 8589934592
ret i64 %c
}
define i64 @foo4(i64 %a, i64 %b) {
entry:
%c = or i64 %a, 562949953421312
ret i64 %c
}
-7
View File
@@ -1,7 +0,0 @@
; RUN: llc < %s -march=systemz
define i64 @foo(i64 %a, i64 %b) {
entry:
%c = sub i64 %a, %b
ret i64 %c
}
-7
View File
@@ -1,7 +0,0 @@
; RUN: llc < %s -march=systemz
define i64 @foo(i64 %a, i64 %b) {
entry:
%c = sub i64 %a, 1
ret i64 %c
}
-6
View File
@@ -1,6 +0,0 @@
; RUN: llc < %s -march=systemz
define i64 @foo(i64 %a, i64 %b) {
entry:
%c = xor i64 %a, %b
ret i64 %c
}
-6
View File
@@ -1,6 +0,0 @@
; RUN: llc < %s -march=systemz
define i64 @foo(i64 %a, i64 %b) {
entry:
%c = xor i64 %a, 1
ret i64 %c
}
@@ -1,42 +0,0 @@
; RUN: llc < %s -march=systemz | grep ahi | count 3
; RUN: llc < %s -march=systemz | grep afi | count 3
; RUN: llc < %s -march=systemz | grep lgfr | count 4
; RUN: llc < %s -march=systemz | grep llgfr | count 2
define i32 @foo1(i32 %a, i32 %b) {
entry:
%c = add i32 %a, 1
ret i32 %c
}
define i32 @foo2(i32 %a, i32 %b) {
entry:
%c = add i32 %a, 131072
ret i32 %c
}
define zeroext i32 @foo3(i32 %a, i32 %b) {
entry:
%c = add i32 %a, 1
ret i32 %c
}
define zeroext i32 @foo4(i32 %a, i32 %b) {
entry:
%c = add i32 %a, 131072
ret i32 %c
}
define signext i32 @foo5(i32 %a, i32 %b) {
entry:
%c = add i32 %a, 1
ret i32 %c
}
define signext i32 @foo6(i32 %a, i32 %b) {
entry:
%c = add i32 %a, 131072
ret i32 %c
}
-22
View File
@@ -1,22 +0,0 @@
; RUN: llc < %s -march=systemz | grep ar | count 3
; RUN: llc < %s -march=systemz | grep lgfr | count 2
; RUN: llc < %s -march=systemz | grep llgfr | count 1
define i32 @foo(i32 %a, i32 %b) {
entry:
%c = add i32 %a, %b
ret i32 %c
}
define zeroext i32 @foo1(i32 %a, i32 %b) {
entry:
%c = add i32 %a, %b
ret i32 %c
}
define signext i32 @foo2(i32 %a, i32 %b) {
entry:
%c = add i32 %a, %b
ret i32 %c
}
@@ -1,38 +0,0 @@
; RUN: llc < %s -march=systemz | grep ngr | count 6
define i32 @foo1(i32 %a, i32 %b) {
entry:
%c = and i32 %a, 1
ret i32 %c
}
define i32 @foo2(i32 %a, i32 %b) {
entry:
%c = and i32 %a, 131072
ret i32 %c
}
define zeroext i32 @foo3(i32 %a, i32 %b) {
entry:
%c = and i32 %a, 1
ret i32 %c
}
define signext i32 @foo4(i32 %a, i32 %b) {
entry:
%c = and i32 %a, 131072
ret i32 %c
}
define zeroext i32 @foo5(i32 %a, i32 %b) {
entry:
%c = and i32 %a, 1
ret i32 %c
}
define signext i32 @foo6(i32 %a, i32 %b) {
entry:
%c = and i32 %a, 131072
ret i32 %c
}
-21
View File
@@ -1,21 +0,0 @@
; RUN: llc < %s -march=systemz | grep ngr | count 3
; RUN: llc < %s -march=systemz | grep nihf | count 1
define i32 @foo(i32 %a, i32 %b) {
entry:
%c = and i32 %a, %b
ret i32 %c
}
define zeroext i32 @foo1(i32 %a, i32 %b) {
entry:
%c = and i32 %a, %b
ret i32 %c
}
define signext i32 @foo2(i32 %a, i32 %b) {
entry:
%c = and i32 %a, %b
ret i32 %c
}
-19
View File
@@ -1,19 +0,0 @@
; RUN: llc < %s -march=systemz | grep lgr | count 2
; RUN: llc < %s -march=systemz | grep nihf | count 1
; RUN: llc < %s -march=systemz | grep lgfr | count 1
define i32 @foo(i32 %a, i32 %b) {
entry:
ret i32 %b
}
define zeroext i32 @foo1(i32 %a, i32 %b) {
entry:
ret i32 %b
}
define signext i32 @foo2(i32 %a, i32 %b) {
entry:
ret i32 %b
}
-42
View File
@@ -1,42 +0,0 @@
; RUN: llc < %s -march=systemz | grep lghi | count 2
; RUN: llc < %s -march=systemz | grep llill | count 1
; RUN: llc < %s -march=systemz | grep llilh | count 1
; RUN: llc < %s -march=systemz | grep lgfi | count 1
; RUN: llc < %s -march=systemz | grep llilf | count 2
define i32 @foo1() {
entry:
ret i32 1
}
define i32 @foo2() {
entry:
ret i32 65535
}
define i32 @foo3() {
entry:
ret i32 131072
}
define i32 @foo4() {
entry:
ret i32 65537
}
define i32 @foo5() {
entry:
ret i32 4294967295
}
define zeroext i32 @foo6() {
entry:
ret i32 4294967295
}
define signext i32 @foo7() {
entry:
ret i32 4294967295
}
@@ -1,8 +0,0 @@
; RUN: llc < %s -march=systemz | grep lcr | count 1
define i32 @foo(i32 %a) {
entry:
%c = sub i32 0, %a
ret i32 %c
}
-60
View File
@@ -1,60 +0,0 @@
; RUN: llc < %s -march=systemz | grep oill | count 3
; RUN: llc < %s -march=systemz | grep oilh | count 3
; RUN: llc < %s -march=systemz | grep oilf | count 3
; RUN: llc < %s -march=systemz | grep llgfr | count 3
; RUN: llc < %s -march=systemz | grep lgfr | count 6
define i32 @foo1(i32 %a, i32 %b) {
entry:
%c = or i32 %a, 1
ret i32 %c
}
define i32 @foo2(i32 %a, i32 %b) {
entry:
%c = or i32 %a, 131072
ret i32 %c
}
define i32 @foo7(i32 %a, i32 %b) {
entry:
%c = or i32 %a, 123456
ret i32 %c
}
define zeroext i32 @foo3(i32 %a, i32 %b) {
entry:
%c = or i32 %a, 1
ret i32 %c
}
define zeroext i32 @foo8(i32 %a, i32 %b) {
entry:
%c = or i32 %a, 123456
ret i32 %c
}
define signext i32 @foo4(i32 %a, i32 %b) {
entry:
%c = or i32 %a, 131072
ret i32 %c
}
define zeroext i32 @foo5(i32 %a, i32 %b) {
entry:
%c = or i32 %a, 1
ret i32 %c
}
define signext i32 @foo6(i32 %a, i32 %b) {
entry:
%c = or i32 %a, 131072
ret i32 %c
}
define signext i32 @foo9(i32 %a, i32 %b) {
entry:
%c = or i32 %a, 123456
ret i32 %c
}
-23
View File
@@ -1,23 +0,0 @@
; RUN: llc < %s -march=systemz | grep ogr | count 3
; RUN: llc < %s -march=systemz | grep nihf | count 1
; RUN: llc < %s -march=systemz | grep lgfr | count 1
define i32 @foo(i32 %a, i32 %b) {
entry:
%c = or i32 %a, %b
ret i32 %c
}
define zeroext i32 @foo1(i32 %a, i32 %b) {
entry:
%c = or i32 %a, %b
ret i32 %c
}
define signext i32 @foo2(i32 %a, i32 %b) {
entry:
%c = or i32 %a, %b
ret i32 %c
}
@@ -1,42 +0,0 @@
; RUN: llc < %s -march=systemz | grep ahi | count 3
; RUN: llc < %s -march=systemz | grep afi | count 3
; RUN: llc < %s -march=systemz | grep lgfr | count 4
; RUN: llc < %s -march=systemz | grep llgfr | count 2
define i32 @foo1(i32 %a, i32 %b) {
entry:
%c = sub i32 %a, 1
ret i32 %c
}
define i32 @foo2(i32 %a, i32 %b) {
entry:
%c = sub i32 %a, 131072
ret i32 %c
}
define zeroext i32 @foo3(i32 %a, i32 %b) {
entry:
%c = sub i32 %a, 1
ret i32 %c
}
define signext i32 @foo4(i32 %a, i32 %b) {
entry:
%c = sub i32 %a, 131072
ret i32 %c
}
define zeroext i32 @foo5(i32 %a, i32 %b) {
entry:
%c = sub i32 %a, 1
ret i32 %c
}
define signext i32 @foo6(i32 %a, i32 %b) {
entry:
%c = sub i32 %a, 131072
ret i32 %c
}
-22
View File
@@ -1,22 +0,0 @@
; RUN: llc < %s -march=systemz | grep sr | count 3
; RUN: llc < %s -march=systemz | grep llgfr | count 1
; RUN: llc < %s -march=systemz | grep lgfr | count 2
define i32 @foo(i32 %a, i32 %b) {
entry:
%c = sub i32 %a, %b
ret i32 %c
}
define zeroext i32 @foo1(i32 %a, i32 %b) {
entry:
%c = sub i32 %a, %b
ret i32 %c
}
define signext i32 @foo2(i32 %a, i32 %b) {
entry:
%c = sub i32 %a, %b
ret i32 %c
}
@@ -1,58 +0,0 @@
; RUN: llc < %s -march=systemz | grep xilf | count 9
; RUN: llc < %s -march=systemz | grep llgfr | count 3
; RUN: llc < %s -march=systemz | grep lgfr | count 6
define i32 @foo1(i32 %a, i32 %b) {
entry:
%c = xor i32 %a, 1
ret i32 %c
}
define i32 @foo2(i32 %a, i32 %b) {
entry:
%c = xor i32 %a, 131072
ret i32 %c
}
define i32 @foo7(i32 %a, i32 %b) {
entry:
%c = xor i32 %a, 123456
ret i32 %c
}
define zeroext i32 @foo3(i32 %a, i32 %b) {
entry:
%c = xor i32 %a, 1
ret i32 %c
}
define zeroext i32 @foo8(i32 %a, i32 %b) {
entry:
%c = xor i32 %a, 123456
ret i32 %c
}
define signext i32 @foo4(i32 %a, i32 %b) {
entry:
%c = xor i32 %a, 131072
ret i32 %c
}
define zeroext i32 @foo5(i32 %a, i32 %b) {
entry:
%c = xor i32 %a, 1
ret i32 %c
}
define signext i32 @foo6(i32 %a, i32 %b) {
entry:
%c = xor i32 %a, 131072
ret i32 %c
}
define signext i32 @foo9(i32 %a, i32 %b) {
entry:
%c = xor i32 %a, 123456
ret i32 %c
}
-23
View File
@@ -1,23 +0,0 @@
; RUN: llc < %s -march=systemz | grep xgr | count 3
; RUN: llc < %s -march=systemz | grep nihf | count 1
; RUN: llc < %s -march=systemz | grep lgfr | count 1
define i32 @foo(i32 %a, i32 %b) {
entry:
%c = xor i32 %a, %b
ret i32 %c
}
define zeroext i32 @foo1(i32 %a, i32 %b) {
entry:
%c = xor i32 %a, %b
ret i32 %c
}
define signext i32 @foo2(i32 %a, i32 %b) {
entry:
%c = xor i32 %a, %b
ret i32 %c
}
-121
View File
@@ -1,121 +0,0 @@
; RUN: llc < %s -march=systemz | grep sra | count 6
; RUN: llc < %s -march=systemz | grep srag | count 3
; RUN: llc < %s -march=systemz | grep srl | count 6
; RUN: llc < %s -march=systemz | grep srlg | count 3
; RUN: llc < %s -march=systemz | grep sll | count 6
; RUN: llc < %s -march=systemz | grep sllg | count 3
define signext i32 @foo1(i32 %a, i32 %idx) nounwind readnone {
entry:
%add = add i32 %idx, 1 ; <i32> [#uses=1]
%shr = ashr i32 %a, %add ; <i32> [#uses=1]
ret i32 %shr
}
define signext i32 @foo2(i32 %a, i32 %idx) nounwind readnone {
entry:
%add = add i32 %idx, 1 ; <i32> [#uses=1]
%shr = shl i32 %a, %add ; <i32> [#uses=1]
ret i32 %shr
}
define signext i32 @foo3(i32 %a, i32 %idx) nounwind readnone {
entry:
%add = add i32 %idx, 1 ; <i32> [#uses=1]
%shr = lshr i32 %a, %add ; <i32> [#uses=1]
ret i32 %shr
}
define signext i64 @foo4(i64 %a, i64 %idx) nounwind readnone {
entry:
%add = add i64 %idx, 1 ; <i64> [#uses=1]
%shr = ashr i64 %a, %add ; <i64> [#uses=1]
ret i64 %shr
}
define signext i64 @foo5(i64 %a, i64 %idx) nounwind readnone {
entry:
%add = add i64 %idx, 1 ; <i64> [#uses=1]
%shr = shl i64 %a, %add ; <i64> [#uses=1]
ret i64 %shr
}
define signext i64 @foo6(i64 %a, i64 %idx) nounwind readnone {
entry:
%add = add i64 %idx, 1 ; <i64> [#uses=1]
%shr = lshr i64 %a, %add ; <i64> [#uses=1]
ret i64 %shr
}
define signext i32 @foo7(i32 %a, i32 %idx) nounwind readnone {
entry:
%shr = ashr i32 %a, 1
ret i32 %shr
}
define signext i32 @foo8(i32 %a, i32 %idx) nounwind readnone {
entry:
%shr = shl i32 %a, 1
ret i32 %shr
}
define signext i32 @foo9(i32 %a, i32 %idx) nounwind readnone {
entry:
%shr = lshr i32 %a, 1
ret i32 %shr
}
define signext i32 @foo10(i32 %a, i32 %idx) nounwind readnone {
entry:
%shr = ashr i32 %a, %idx
ret i32 %shr
}
define signext i32 @foo11(i32 %a, i32 %idx) nounwind readnone {
entry:
%shr = shl i32 %a, %idx
ret i32 %shr
}
define signext i32 @foo12(i32 %a, i32 %idx) nounwind readnone {
entry:
%shr = lshr i32 %a, %idx
ret i32 %shr
}
define signext i64 @foo13(i64 %a, i64 %idx) nounwind readnone {
entry:
%shr = ashr i64 %a, 1
ret i64 %shr
}
define signext i64 @foo14(i64 %a, i64 %idx) nounwind readnone {
entry:
%shr = shl i64 %a, 1
ret i64 %shr
}
define signext i64 @foo15(i64 %a, i64 %idx) nounwind readnone {
entry:
%shr = lshr i64 %a, 1
ret i64 %shr
}
define signext i64 @foo16(i64 %a, i64 %idx) nounwind readnone {
entry:
%shr = ashr i64 %a, %idx
ret i64 %shr
}
define signext i64 @foo17(i64 %a, i64 %idx) nounwind readnone {
entry:
%shr = shl i64 %a, %idx
ret i64 %shr
}
define signext i64 @foo18(i64 %a, i64 %idx) nounwind readnone {
entry:
%shr = lshr i64 %a, %idx
ret i64 %shr
}
-11
View File
@@ -1,11 +0,0 @@
; RUN: llc < %s | grep lay | count 1
target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
target triple = "s390x-unknown-linux-gnu"
define i64* @foo(i64* %a, i64 %idx) nounwind readnone {
entry:
%add.ptr.sum = add i64 %idx, 1 ; <i64> [#uses=1]
%add.ptr2 = getelementptr i64* %a, i64 %add.ptr.sum ; <i64*> [#uses=1]
ret i64* %add.ptr2
}
-50
View File
@@ -1,50 +0,0 @@
; RUN: llc < %s -mattr=+z10 | grep mvghi | count 1
; RUN: llc < %s -mattr=+z10 | grep mvhi | count 1
; RUN: llc < %s -mattr=+z10 | grep mvhhi | count 1
; RUN: llc < %s | grep mvi | count 2
; RUN: llc < %s | grep mviy | count 1
target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
target triple = "s390x-unknown-linux-gnu"
define void @foo1(i64* nocapture %a, i64 %idx) nounwind {
entry:
%add.ptr = getelementptr i64* %a, i64 1 ; <i64*> [#uses=1]
store i64 1, i64* %add.ptr
ret void
}
define void @foo2(i32* nocapture %a, i64 %idx) nounwind {
entry:
%add.ptr = getelementptr i32* %a, i64 1 ; <i32*> [#uses=1]
store i32 2, i32* %add.ptr
ret void
}
define void @foo3(i16* nocapture %a, i64 %idx) nounwind {
entry:
%add.ptr = getelementptr i16* %a, i64 1 ; <i16*> [#uses=1]
store i16 3, i16* %add.ptr
ret void
}
define void @foo4(i8* nocapture %a, i64 %idx) nounwind {
entry:
%add.ptr = getelementptr i8* %a, i64 1 ; <i8*> [#uses=1]
store i8 4, i8* %add.ptr
ret void
}
define void @foo5(i8* nocapture %a, i64 %idx) nounwind {
entry:
%add.ptr = getelementptr i8* %a, i64 -1 ; <i8*> [#uses=1]
store i8 4, i8* %add.ptr
ret void
}
define void @foo6(i16* nocapture %a, i64 %idx) nounwind {
entry:
%add.ptr = getelementptr i16* %a, i64 -1 ; <i16*> [#uses=1]
store i16 3, i16* %add.ptr
ret void
}
-44
View File
@@ -1,44 +0,0 @@
; RUN: llc < %s | grep ly | count 2
; RUN: llc < %s | grep sty | count 2
; RUN: llc < %s | grep {l %} | count 2
; RUN: llc < %s | grep {st %} | count 2
target datalayout = "E-p:64:64:64-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-a0:16:16"
target triple = "s390x-ibm-linux"
define void @foo1(i32* nocapture %foo, i32* nocapture %bar) nounwind {
entry:
%tmp1 = load i32* %foo ; <i32> [#uses=1]
store i32 %tmp1, i32* %bar
ret void
}
define void @foo2(i32* nocapture %foo, i32* nocapture %bar, i64 %idx) nounwind {
entry:
%add.ptr = getelementptr i32* %foo, i64 1 ; <i32*> [#uses=1]
%tmp1 = load i32* %add.ptr ; <i32> [#uses=1]
%add.ptr3.sum = add i64 %idx, 1 ; <i64> [#uses=1]
%add.ptr5 = getelementptr i32* %bar, i64 %add.ptr3.sum ; <i32*> [#uses=1]
store i32 %tmp1, i32* %add.ptr5
ret void
}
define void @foo3(i32* nocapture %foo, i32* nocapture %bar, i64 %idx) nounwind {
entry:
%sub.ptr = getelementptr i32* %foo, i64 -1 ; <i32*> [#uses=1]
%tmp1 = load i32* %sub.ptr ; <i32> [#uses=1]
%sub.ptr3.sum = add i64 %idx, -1 ; <i64> [#uses=1]
%add.ptr = getelementptr i32* %bar, i64 %sub.ptr3.sum ; <i32*> [#uses=1]
store i32 %tmp1, i32* %add.ptr
ret void
}
define void @foo4(i32* nocapture %foo, i32* nocapture %bar, i64 %idx) nounwind {
entry:
%add.ptr = getelementptr i32* %foo, i64 8192 ; <i32*> [#uses=1]
%tmp1 = load i32* %add.ptr ; <i32> [#uses=1]
%add.ptr3.sum = add i64 %idx, 8192 ; <i64> [#uses=1]
%add.ptr5 = getelementptr i32* %bar, i64 %add.ptr3.sum ; <i32*> [#uses=1]
store i32 %tmp1, i32* %add.ptr5
ret void
}
@@ -1,85 +0,0 @@
; RUN: llc < %s | grep {sthy.%} | count 2
; RUN: llc < %s | grep {lhy.%} | count 2
; RUN: llc < %s | grep {lh.%} | count 6
; RUN: llc < %s | grep {sth.%} | count 2
target datalayout = "E-p:64:64:64-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-a0:16:16"
target triple = "s390x-ibm-linux"
define void @foo1(i16* nocapture %foo, i16* nocapture %bar) nounwind {
entry:
%tmp1 = load i16* %foo ; <i16> [#uses=1]
store i16 %tmp1, i16* %bar
ret void
}
define void @foo2(i16* nocapture %foo, i16* nocapture %bar, i64 %idx) nounwind {
entry:
%add.ptr = getelementptr i16* %foo, i64 1 ; <i16*> [#uses=1]
%tmp1 = load i16* %add.ptr ; <i16> [#uses=1]
%add.ptr3.sum = add i64 %idx, 1 ; <i64> [#uses=1]
%add.ptr5 = getelementptr i16* %bar, i64 %add.ptr3.sum ; <i16*> [#uses=1]
store i16 %tmp1, i16* %add.ptr5
ret void
}
define void @foo3(i16* nocapture %foo, i16* nocapture %bar, i64 %idx) nounwind {
entry:
%sub.ptr = getelementptr i16* %foo, i64 -1 ; <i16*> [#uses=1]
%tmp1 = load i16* %sub.ptr ; <i16> [#uses=1]
%sub.ptr3.sum = add i64 %idx, -1 ; <i64> [#uses=1]
%add.ptr = getelementptr i16* %bar, i64 %sub.ptr3.sum ; <i16*> [#uses=1]
store i16 %tmp1, i16* %add.ptr
ret void
}
define void @foo4(i16* nocapture %foo, i16* nocapture %bar, i64 %idx) nounwind {
entry:
%add.ptr = getelementptr i16* %foo, i64 8192 ; <i16*> [#uses=1]
%tmp1 = load i16* %add.ptr ; <i16> [#uses=1]
%add.ptr3.sum = add i64 %idx, 8192 ; <i64> [#uses=1]
%add.ptr5 = getelementptr i16* %bar, i64 %add.ptr3.sum ; <i16*> [#uses=1]
store i16 %tmp1, i16* %add.ptr5
ret void
}
define void @foo5(i16* nocapture %foo, i32* nocapture %bar) nounwind {
entry:
%tmp1 = load i16* %foo ; <i16> [#uses=1]
%conv = sext i16 %tmp1 to i32 ; <i32> [#uses=1]
store i32 %conv, i32* %bar
ret void
}
define void @foo6(i16* nocapture %foo, i32* nocapture %bar, i64 %idx) nounwind {
entry:
%add.ptr = getelementptr i16* %foo, i64 1 ; <i16*> [#uses=1]
%tmp1 = load i16* %add.ptr ; <i16> [#uses=1]
%conv = sext i16 %tmp1 to i32 ; <i32> [#uses=1]
%add.ptr3.sum = add i64 %idx, 1 ; <i64> [#uses=1]
%add.ptr5 = getelementptr i32* %bar, i64 %add.ptr3.sum ; <i32*> [#uses=1]
store i32 %conv, i32* %add.ptr5
ret void
}
define void @foo7(i16* nocapture %foo, i32* nocapture %bar, i64 %idx) nounwind {
entry:
%sub.ptr = getelementptr i16* %foo, i64 -1 ; <i16*> [#uses=1]
%tmp1 = load i16* %sub.ptr ; <i16> [#uses=1]
%conv = sext i16 %tmp1 to i32 ; <i32> [#uses=1]
%sub.ptr3.sum = add i64 %idx, -1 ; <i64> [#uses=1]
%add.ptr = getelementptr i32* %bar, i64 %sub.ptr3.sum ; <i32*> [#uses=1]
store i32 %conv, i32* %add.ptr
ret void
}
define void @foo8(i16* nocapture %foo, i32* nocapture %bar, i64 %idx) nounwind {
entry:
%add.ptr = getelementptr i16* %foo, i64 8192 ; <i16*> [#uses=1]
%tmp1 = load i16* %add.ptr ; <i16> [#uses=1]
%conv = sext i16 %tmp1 to i32 ; <i32> [#uses=1]
%add.ptr3.sum = add i64 %idx, 8192 ; <i64> [#uses=1]
%add.ptr5 = getelementptr i32* %bar, i64 %add.ptr3.sum ; <i32*> [#uses=1]
store i32 %conv, i32* %add.ptr5
ret void
}
-75
View File
@@ -1,75 +0,0 @@
; RUN: llc < %s -march=systemz | not grep aghi
; RUN: llc < %s -march=systemz | grep llgf | count 1
; RUN: llc < %s -march=systemz | grep llgh | count 1
; RUN: llc < %s -march=systemz | grep llgc | count 1
; RUN: llc < %s -march=systemz | grep lgf | count 2
; RUN: llc < %s -march=systemz | grep lgh | count 2
; RUN: llc < %s -march=systemz | grep lgb | count 1
target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
target triple = "s390x-unknown-linux-gnu"
define zeroext i64 @foo1(i64* nocapture %a, i64 %idx) nounwind readonly {
entry:
%add.ptr.sum = add i64 %idx, 1 ; <i64> [#uses=1]
%add.ptr2 = getelementptr i64* %a, i64 %add.ptr.sum ; <i64*> [#uses=1]
%tmp3 = load i64* %add.ptr2 ; <i64> [#uses=1]
ret i64 %tmp3
}
define zeroext i32 @foo2(i32* nocapture %a, i64 %idx) nounwind readonly {
entry:
%add.ptr.sum = add i64 %idx, 1 ; <i64> [#uses=1]
%add.ptr2 = getelementptr i32* %a, i64 %add.ptr.sum ; <i32*> [#uses=1]
%tmp3 = load i32* %add.ptr2 ; <i32> [#uses=1]
ret i32 %tmp3
}
define zeroext i16 @foo3(i16* nocapture %a, i64 %idx) nounwind readonly {
entry:
%add.ptr.sum = add i64 %idx, 1 ; <i64> [#uses=1]
%add.ptr2 = getelementptr i16* %a, i64 %add.ptr.sum ; <i16*> [#uses=1]
%tmp3 = load i16* %add.ptr2 ; <i16> [#uses=1]
ret i16 %tmp3
}
define zeroext i8 @foo4(i8* nocapture %a, i64 %idx) nounwind readonly {
entry:
%add.ptr.sum = add i64 %idx, 1 ; <i64> [#uses=1]
%add.ptr2 = getelementptr i8* %a, i64 %add.ptr.sum ; <i8*> [#uses=1]
%tmp3 = load i8* %add.ptr2 ; <i8> [#uses=1]
ret i8 %tmp3
}
define signext i64 @foo5(i64* nocapture %a, i64 %idx) nounwind readonly {
entry:
%add.ptr.sum = add i64 %idx, 1 ; <i64> [#uses=1]
%add.ptr2 = getelementptr i64* %a, i64 %add.ptr.sum ; <i64*> [#uses=1]
%tmp3 = load i64* %add.ptr2 ; <i64> [#uses=1]
ret i64 %tmp3
}
define signext i32 @foo6(i32* nocapture %a, i64 %idx) nounwind readonly {
entry:
%add.ptr.sum = add i64 %idx, 1 ; <i64> [#uses=1]
%add.ptr2 = getelementptr i32* %a, i64 %add.ptr.sum ; <i32*> [#uses=1]
%tmp3 = load i32* %add.ptr2 ; <i32> [#uses=1]
ret i32 %tmp3
}
define signext i16 @foo7(i16* nocapture %a, i64 %idx) nounwind readonly {
entry:
%add.ptr.sum = add i64 %idx, 1 ; <i64> [#uses=1]
%add.ptr2 = getelementptr i16* %a, i64 %add.ptr.sum ; <i16*> [#uses=1]
%tmp3 = load i16* %add.ptr2 ; <i16> [#uses=1]
ret i16 %tmp3
}
define signext i8 @foo8(i8* nocapture %a, i64 %idx) nounwind readonly {
entry:
%add.ptr.sum = add i64 %idx, 1 ; <i64> [#uses=1]
%add.ptr2 = getelementptr i8* %a, i64 %add.ptr.sum ; <i8*> [#uses=1]
%tmp3 = load i8* %add.ptr2 ; <i8> [#uses=1]
ret i8 %tmp3
}
-79
View File
@@ -1,79 +0,0 @@
; RUN: llc < %s | not grep aghi
; RUN: llc < %s | FileCheck %s
target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
target triple = "s390x-unknown-linux-gnu"
define void @foo1(i64* nocapture %a, i64 %idx, i64 %val) nounwind {
entry:
; CHECK: foo1:
; CHECK: stg %r4, 8(%r1,%r2)
%add.ptr.sum = add i64 %idx, 1 ; <i64> [#uses=1]
%add.ptr2 = getelementptr i64* %a, i64 %add.ptr.sum ; <i64*> [#uses=1]
store i64 %val, i64* %add.ptr2
ret void
}
define void @foo2(i32* nocapture %a, i64 %idx, i32 %val) nounwind {
entry:
; CHECK: foo2:
; CHECK: st %r4, 4(%r1,%r2)
%add.ptr.sum = add i64 %idx, 1 ; <i64> [#uses=1]
%add.ptr2 = getelementptr i32* %a, i64 %add.ptr.sum ; <i32*> [#uses=1]
store i32 %val, i32* %add.ptr2
ret void
}
define void @foo3(i16* nocapture %a, i64 %idx, i16 zeroext %val) nounwind {
entry:
; CHECK: foo3:
; CHECK: sth %r4, 2(%r1,%r2)
%add.ptr.sum = add i64 %idx, 1 ; <i64> [#uses=1]
%add.ptr2 = getelementptr i16* %a, i64 %add.ptr.sum ; <i16*> [#uses=1]
store i16 %val, i16* %add.ptr2
ret void
}
define void @foo4(i8* nocapture %a, i64 %idx, i8 zeroext %val) nounwind {
entry:
; CHECK: foo4:
; CHECK: stc %r4, 1(%r3,%r2)
%add.ptr.sum = add i64 %idx, 1 ; <i64> [#uses=1]
%add.ptr2 = getelementptr i8* %a, i64 %add.ptr.sum ; <i8*> [#uses=1]
store i8 %val, i8* %add.ptr2
ret void
}
define void @foo5(i8* nocapture %a, i64 %idx, i64 %val) nounwind {
entry:
; CHECK: foo5:
; CHECK: stc %r4, 1(%r3,%r2)
%add.ptr.sum = add i64 %idx, 1 ; <i64> [#uses=1]
%add.ptr2 = getelementptr i8* %a, i64 %add.ptr.sum ; <i8*> [#uses=1]
%conv = trunc i64 %val to i8 ; <i8> [#uses=1]
store i8 %conv, i8* %add.ptr2
ret void
}
define void @foo6(i16* nocapture %a, i64 %idx, i64 %val) nounwind {
entry:
; CHECK: foo6:
; CHECK: sth %r4, 2(%r1,%r2)
%add.ptr.sum = add i64 %idx, 1 ; <i64> [#uses=1]
%add.ptr2 = getelementptr i16* %a, i64 %add.ptr.sum ; <i16*> [#uses=1]
%conv = trunc i64 %val to i16 ; <i16> [#uses=1]
store i16 %conv, i16* %add.ptr2
ret void
}
define void @foo7(i32* nocapture %a, i64 %idx, i64 %val) nounwind {
entry:
; CHECK: foo7:
; CHECK: st %r4, 4(%r1,%r2)
%add.ptr.sum = add i64 %idx, 1 ; <i64> [#uses=1]
%add.ptr2 = getelementptr i32* %a, i64 %add.ptr.sum ; <i32*> [#uses=1]
%conv = trunc i64 %val to i32 ; <i32> [#uses=1]
store i32 %conv, i32* %add.ptr2
ret void
}
-17
View File
@@ -1,17 +0,0 @@
; RUN: llc < %s | grep 168 | count 1
; RUN: llc < %s | grep 160 | count 3
; RUN: llc < %s | grep 328 | count 1
target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
target triple = "s390x-unknown-linux-gnu"
define i64 @foo(i64 %b, i64 %c, i64 %d, i64 %e, i64 %f, i64 %g) nounwind {
entry:
%a = alloca i64, align 8 ; <i64*> [#uses=3]
store i64 %g, i64* %a
call void @bar(i64* %a) nounwind
%tmp1 = load i64* %a ; <i64> [#uses=1]
ret i64 %tmp1
}
declare void @bar(i64*)
-16
View File
@@ -1,16 +0,0 @@
; RUN: llc < %s | grep 160 | count 1
; RUN: llc < %s | grep 168 | count 1
target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
target triple = "s390x-unknown-linux-gnu"
define i64 @foo(i64 %a, i64 %b, i64 %c, i64 %d, i64 %e, i64 %f, i64* %g) nounwind readnone {
entry:
ret i64 %f
}
define i64 @bar(i64 %a, i64 %b, i64 %c, i64 %d, i64 %e, i64 %f, i64* %g) nounwind readnone {
entry:
%conv = ptrtoint i64* %g to i64 ; <i64> [#uses=1]
ret i64 %conv
}
-13
View File
@@ -1,13 +0,0 @@
; RUN: llc < %s | grep 160 | count 1
; RUN: llc < %s | grep 328 | count 1
; RUN: llc < %s | grep 168 | count 1
target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
target triple = "s390x-unknown-linux-gnu"
define noalias i64* @foo(i64 %a, i64 %b, i64 %c, i64 %d, i64 %e, i64 %f) nounwind readnone {
entry:
%g = alloca i64, align 8 ; <i64*> [#uses=1]
%add.ptr = getelementptr i64* %g, i64 %f ; <i64*> [#uses=1]
ret i64* %add.ptr
}
-12
View File
@@ -1,12 +0,0 @@
; RUN: llc < %s
target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
target triple = "s390x-unknown-linux-gnu"
define void @foo() nounwind {
entry:
tail call void @bar() nounwind
ret void
}
declare void @bar()
-141
View File
@@ -1,141 +0,0 @@
; RUN: llc < %s | grep je | count 1
; RUN: llc < %s | grep jne | count 1
; RUN: llc < %s | grep jhe | count 2
; RUN: llc < %s | grep jle | count 2
; RUN: llc < %s | grep jh | count 4
; RUN: llc < %s | grep jl | count 4
target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
target triple = "s390x-unknown-linux-gnu"
define void @foo(i64 %a, i64 %b) nounwind {
entry:
%cmp = icmp ult i64 %a, %b ; <i1> [#uses=1]
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
declare void @bar()
define void @foo1(i64 %a, i64 %b) nounwind {
entry:
%cmp = icmp ugt i64 %a, %b ; <i1> [#uses=1]
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo2(i64 %a, i64 %b) nounwind {
entry:
%cmp = icmp ugt i64 %a, %b ; <i1> [#uses=1]
br i1 %cmp, label %if.end, label %if.then
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo3(i64 %a, i64 %b) nounwind {
entry:
%cmp = icmp ult i64 %a, %b ; <i1> [#uses=1]
br i1 %cmp, label %if.end, label %if.then
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo4(i64 %a, i64 %b) nounwind {
entry:
%cmp = icmp eq i64 %a, %b ; <i1> [#uses=1]
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo5(i64 %a, i64 %b) nounwind {
entry:
%cmp = icmp eq i64 %a, %b ; <i1> [#uses=1]
br i1 %cmp, label %if.end, label %if.then
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo6(i64 %a, i64 %b) nounwind {
entry:
%cmp = icmp slt i64 %a, %b ; <i1> [#uses=1]
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo7(i64 %a, i64 %b) nounwind {
entry:
%cmp = icmp sgt i64 %a, %b ; <i1> [#uses=1]
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo8(i64 %a, i64 %b) nounwind {
entry:
%cmp = icmp sgt i64 %a, %b ; <i1> [#uses=1]
br i1 %cmp, label %if.end, label %if.then
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo9(i64 %a, i64 %b) nounwind {
entry:
%cmp = icmp slt i64 %a, %b ; <i1> [#uses=1]
br i1 %cmp, label %if.end, label %if.then
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
-142
View File
@@ -1,142 +0,0 @@
; RUN: llc < %s | grep je | count 1
; RUN: llc < %s | grep jne | count 1
; RUN: llc < %s | grep jhe | count 2
; RUN: llc < %s | grep jle | count 2
; RUN: llc < %s | grep jh | count 4
; RUN: llc < %s | grep jl | count 4
target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
target triple = "s390x-unknown-linux-gnu"
define void @foo(i32 %a, i32 %b) nounwind {
entry:
%cmp = icmp ult i32 %a, %b ; <i1> [#uses=1]
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
declare void @bar()
define void @foo1(i32 %a, i32 %b) nounwind {
entry:
%cmp = icmp ugt i32 %a, %b ; <i1> [#uses=1]
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo2(i32 %a, i32 %b) nounwind {
entry:
%cmp = icmp ugt i32 %a, %b ; <i1> [#uses=1]
br i1 %cmp, label %if.end, label %if.then
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo3(i32 %a, i32 %b) nounwind {
entry:
%cmp = icmp ult i32 %a, %b ; <i1> [#uses=1]
br i1 %cmp, label %if.end, label %if.then
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo4(i32 %a, i32 %b) nounwind {
entry:
%cmp = icmp eq i32 %a, %b ; <i1> [#uses=1]
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo5(i32 %a, i32 %b) nounwind {
entry:
%cmp = icmp eq i32 %a, %b ; <i1> [#uses=1]
br i1 %cmp, label %if.end, label %if.then
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo6(i32 %a, i32 %b) nounwind {
entry:
%cmp = icmp slt i32 %a, %b ; <i1> [#uses=1]
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo7(i32 %a, i32 %b) nounwind {
entry:
%cmp = icmp sgt i32 %a, %b ; <i1> [#uses=1]
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo8(i32 %a, i32 %b) nounwind {
entry:
%cmp = icmp sgt i32 %a, %b ; <i1> [#uses=1]
br i1 %cmp, label %if.end, label %if.then
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo9(i32 %a, i32 %b) nounwind {
entry:
%cmp = icmp slt i32 %a, %b ; <i1> [#uses=1]
br i1 %cmp, label %if.end, label %if.then
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
-18
View File
@@ -1,18 +0,0 @@
; RUN: llc < %s
target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
target triple = "s390x-ibm-linux"
define void @foo() noreturn nounwind {
entry:
tail call void @baz() nounwind
br label %l1
l1: ; preds = %entry, %l1
tail call void @bar() nounwind
br label %l1
}
declare void @bar()
declare void @baz()
-137
View File
@@ -1,137 +0,0 @@
; RUN: llc < %s | grep cgfi | count 8
; RUN: llc < %s | grep clgfi | count 2
target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
target triple = "s390x-unknown-linux-gnu"
define void @foo(i64 %a, i64 %b) nounwind {
entry:
%cmp = icmp eq i64 %a, 0 ; <i1> [#uses=1]
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
declare void @bar()
define void @foo1(i64 %a, i64 %b) nounwind {
entry:
%cmp = icmp ugt i64 %a, 1 ; <i1> [#uses=1]
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo2(i64 %a, i64 %b) nounwind {
entry:
%cmp = icmp ugt i64 %a, 1 ; <i1> [#uses=1]
br i1 %cmp, label %if.end, label %if.then
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo3(i64 %a) nounwind {
entry:
%cmp = icmp eq i64 %a, 0 ; <i1> [#uses=1]
br i1 %cmp, label %if.end, label %if.then
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo4(i64 %a) nounwind {
entry:
%cmp = icmp eq i64 %a, 1 ; <i1> [#uses=1]
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo5(i64 %a) nounwind {
entry:
%cmp = icmp eq i64 %a, 1 ; <i1> [#uses=1]
br i1 %cmp, label %if.end, label %if.then
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo6(i64 %a) nounwind {
entry:
%cmp = icmp slt i64 %a, 1 ; <i1> [#uses=1]
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo7(i64 %a) nounwind {
entry:
%cmp = icmp sgt i64 %a, 1 ; <i1> [#uses=1]
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo8(i64 %a) nounwind {
entry:
%cmp = icmp sgt i64 %a, 1 ; <i1> [#uses=1]
br i1 %cmp, label %if.end, label %if.then
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo9(i64 %a) nounwind {
entry:
%cmp = icmp slt i64 %a, 1 ; <i1> [#uses=1]
br i1 %cmp, label %if.end, label %if.then
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
-139
View File
@@ -1,139 +0,0 @@
; RUN: llc < %s | grep jl | count 3
; RUN: llc < %s | grep jh | count 3
; RUN: llc < %s | grep je | count 2
; RUN: llc < %s | grep jne | count 2
target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
target triple = "s390x-unknown-linux-gnu"
define void @foo(i32 %a, i32 %b) nounwind {
entry:
%cmp = icmp eq i32 %a, 0 ; <i1> [#uses=1]
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
declare void @bar()
define void @foo1(i32 %a, i32 %b) nounwind {
entry:
%cmp = icmp ugt i32 %a, 1 ; <i1> [#uses=1]
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo2(i32 %a, i32 %b) nounwind {
entry:
%cmp = icmp ugt i32 %a, 1 ; <i1> [#uses=1]
br i1 %cmp, label %if.end, label %if.then
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo3(i32 %a) nounwind {
entry:
%cmp = icmp eq i32 %a, 0 ; <i1> [#uses=1]
br i1 %cmp, label %if.end, label %if.then
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo4(i32 %a) nounwind {
entry:
%cmp = icmp eq i32 %a, 1 ; <i1> [#uses=1]
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo5(i32 %a) nounwind {
entry:
%cmp = icmp eq i32 %a, 1 ; <i1> [#uses=1]
br i1 %cmp, label %if.end, label %if.then
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo6(i32 %a) nounwind {
entry:
%cmp = icmp slt i32 %a, 1 ; <i1> [#uses=1]
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo7(i32 %a) nounwind {
entry:
%cmp = icmp sgt i32 %a, 1 ; <i1> [#uses=1]
br i1 %cmp, label %if.then, label %if.end
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo8(i32 %a) nounwind {
entry:
%cmp = icmp sgt i32 %a, 1 ; <i1> [#uses=1]
br i1 %cmp, label %if.end, label %if.then
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
define void @foo9(i32 %a) nounwind {
entry:
%cmp = icmp slt i32 %a, 1 ; <i1> [#uses=1]
br i1 %cmp, label %if.end, label %if.then
if.then: ; preds = %entry
tail call void @bar() nounwind
ret void
if.end: ; preds = %entry
ret void
}
-11
View File
@@ -1,11 +0,0 @@
; RUN: llc < %s | grep clgr
target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
target triple = "s390x-unknown-linux-gnu"
define i64 @foo(i64 %a, i64 %b) nounwind readnone {
entry:
%cmp = icmp ult i64 %a, %b ; <i1> [#uses=1]
%cond = select i1 %cmp, i64 %a, i64 %b ; <i64> [#uses=1]
ret i64 %cond
}
-55
View File
@@ -1,55 +0,0 @@
; RUN: llc < %s | grep dsgr | count 2
; RUN: llc < %s | grep dsgfr | count 2
; RUN: llc < %s | grep dlr | count 2
; RUN: llc < %s | grep dlgr | count 2
target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
target triple = "s390x-unknown-linux-gnu"
define i64 @div(i64 %a, i64 %b) nounwind readnone {
entry:
%div = sdiv i64 %a, %b ; <i64> [#uses=1]
ret i64 %div
}
define i32 @div1(i32 %a, i32 %b) nounwind readnone {
entry:
%div = sdiv i32 %a, %b ; <i32> [#uses=1]
ret i32 %div
}
define i64 @div2(i64 %a, i64 %b) nounwind readnone {
entry:
%div = udiv i64 %a, %b ; <i64> [#uses=1]
ret i64 %div
}
define i32 @div3(i32 %a, i32 %b) nounwind readnone {
entry:
%div = udiv i32 %a, %b ; <i32> [#uses=1]
ret i32 %div
}
define i64 @rem(i64 %a, i64 %b) nounwind readnone {
entry:
%rem = srem i64 %a, %b ; <i64> [#uses=1]
ret i64 %rem
}
define i32 @rem1(i32 %a, i32 %b) nounwind readnone {
entry:
%rem = srem i32 %a, %b ; <i32> [#uses=1]
ret i32 %rem
}
define i64 @rem2(i64 %a, i64 %b) nounwind readnone {
entry:
%rem = urem i64 %a, %b ; <i64> [#uses=1]
ret i64 %rem
}
define i32 @rem3(i32 %a, i32 %b) nounwind readnone {
entry:
%rem = urem i32 %a, %b ; <i32> [#uses=1]
ret i32 %rem
}
-64
View File
@@ -1,64 +0,0 @@
; RUN: llc < %s | grep {dsgf.%} | count 2
; RUN: llc < %s | grep {dsg.%} | count 2
; RUN: llc < %s | grep {dl.%} | count 2
; RUN: llc < %s | grep dlg | count 2
target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
target triple = "s390x-unknown-linux-gnu"
define i64 @div(i64 %a, i64* %b) nounwind readnone {
entry:
%b1 = load i64* %b
%div = sdiv i64 %a, %b1
ret i64 %div
}
define i64 @div1(i64 %a, i64* %b) nounwind readnone {
entry:
%b1 = load i64* %b
%div = udiv i64 %a, %b1
ret i64 %div
}
define i64 @rem(i64 %a, i64* %b) nounwind readnone {
entry:
%b1 = load i64* %b
%div = srem i64 %a, %b1
ret i64 %div
}
define i64 @rem1(i64 %a, i64* %b) nounwind readnone {
entry:
%b1 = load i64* %b
%div = urem i64 %a, %b1
ret i64 %div
}
define i32 @div2(i32 %a, i32* %b) nounwind readnone {
entry:
%b1 = load i32* %b
%div = sdiv i32 %a, %b1
ret i32 %div
}
define i32 @div3(i32 %a, i32* %b) nounwind readnone {
entry:
%b1 = load i32* %b
%div = udiv i32 %a, %b1
ret i32 %div
}
define i32 @rem2(i32 %a, i32* %b) nounwind readnone {
entry:
%b1 = load i32* %b
%div = srem i32 %a, %b1
ret i32 %div
}
define i32 @rem3(i32 %a, i32* %b) nounwind readnone {
entry:
%b1 = load i32* %b
%div = urem i32 %a, %b1
ret i32 %div
}
-29
View File
@@ -1,29 +0,0 @@
; RUN: llc < %s | grep msgr | count 2
; RUN: llc < %s | grep msr | count 2
target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
target triple = "s390x-unknown-linux-gnu"
define i64 @foo(i64 %a, i64 %b) nounwind readnone {
entry:
%mul = mul i64 %b, %a ; <i64> [#uses=1]
ret i64 %mul
}
define i64 @foo2(i64 %a, i64 %b) nounwind readnone {
entry:
%mul = mul i64 %b, %a ; <i64> [#uses=1]
ret i64 %mul
}
define i32 @foo3(i32 %a, i32 %b) nounwind readnone {
entry:
%mul = mul i32 %b, %a ; <i32> [#uses=1]
ret i32 %mul
}
define i32 @foo4(i32 %a, i32 %b) nounwind readnone {
entry:
%mul = mul i32 %b, %a ; <i32> [#uses=1]
ret i32 %mul
}
-14
View File
@@ -1,14 +0,0 @@
; RUN: llc < %s
target datalayout = "E-p:64:64:64-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-a0:16:16"
target triple = "s390x-ibm-linux"
define void @foo(i64 %N) nounwind {
entry:
%N3 = trunc i64 %N to i32 ; <i32> [#uses=1]
%vla = alloca i8, i32 %N3, align 2 ; <i8*> [#uses=1]
call void @bar(i8* %vla) nounwind
ret void
}
declare void @bar(i8*)
-23
View File
@@ -1,23 +0,0 @@
; RUN: llc < %s | grep larl | count 3
target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
target triple = "s390x-ibm-linux"
@bar = common global i64 0, align 8 ; <i64*> [#uses=3]
define i64 @foo() nounwind readonly {
entry:
%tmp = load i64* @bar ; <i64> [#uses=1]
ret i64 %tmp
}
define i64* @foo2() nounwind readnone {
entry:
ret i64* @bar
}
define i64* @foo3(i64 %idx) nounwind readnone {
entry:
%add.ptr.sum = add i64 %idx, 1 ; <i64> [#uses=1]
%add.ptr2 = getelementptr i64* @bar, i64 %add.ptr.sum ; <i64*> [#uses=1]
ret i64* %add.ptr2
}
-39
View File
@@ -1,39 +0,0 @@
; RUN: llc < %s -march=systemz | grep larl
define i32 @main(i32 %tmp158) {
entry:
switch i32 %tmp158, label %bb336 [
i32 -2147483648, label %bb338
i32 -2147483647, label %bb338
i32 -2147483646, label %bb338
i32 120, label %bb338
i32 121, label %bb339
i32 122, label %bb340
i32 123, label %bb341
i32 124, label %bb342
i32 125, label %bb343
i32 126, label %bb336
i32 1024, label %bb338
i32 0, label %bb338
i32 1, label %bb338
i32 2, label %bb338
i32 3, label %bb338
i32 4, label %bb338
i32 5, label %bb338
]
bb336:
ret i32 10
bb338:
ret i32 11
bb339:
ret i32 12
bb340:
ret i32 13
bb341:
ret i32 14
bb342:
ret i32 15
bb343:
ret i32 18
}
-27
View File
@@ -1,27 +0,0 @@
; RUN: llc < %s -relocation-model=pic | grep GOTENT | count 3
; RUN: llc < %s -relocation-model=pic | grep PLT | count 1
target datalayout = "E-p:64:64:64-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-a0:16:16"
target triple = "s390x-ibm-linux"
@ptr = external global void (...)* ; <void (...)**> [#uses=2]
define void @foo1() nounwind {
entry:
store void (...)* @func, void (...)** @ptr
ret void
}
declare void @func(...)
define void @foo2() nounwind {
entry:
tail call void (...)* @func() nounwind
ret void
}
define void @foo3() nounwind {
entry:
%tmp = load void (...)** @ptr ; <void (...)*> [#uses=1]
tail call void (...)* %tmp() nounwind
ret void
}
-29
View File
@@ -1,29 +0,0 @@
; RUN: llc < %s -relocation-model=pic | grep GOTENT | count 6
target datalayout = "E-p:64:64:64-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-a0:16:16"
target triple = "s390x-ibm-linux"
@src = external global i32 ; <i32*> [#uses=2]
@dst = external global i32 ; <i32*> [#uses=2]
@ptr = external global i32* ; <i32**> [#uses=2]
define void @foo1() nounwind {
entry:
%tmp = load i32* @src ; <i32> [#uses=1]
store i32 %tmp, i32* @dst
ret void
}
define void @foo2() nounwind {
entry:
store i32* @dst, i32** @ptr
ret void
}
define void @foo3() nounwind {
entry:
%tmp = load i32* @src ; <i32> [#uses=1]
%tmp1 = load i32** @ptr ; <i32*> [#uses=1]
%arrayidx = getelementptr i32* %tmp1, i64 1 ; <i32*> [#uses=1]
store i32 %tmp, i32* %arrayidx
ret void
}
-74
View File
@@ -1,74 +0,0 @@
; RUN: llc < %s | FileCheck %s
target datalayout = "E-p:64:64:64-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-a0:16:16"
target triple = "s390x-ibm-linux"
define zeroext i16 @foo(i16 zeroext %a) {
%res = tail call i16 @llvm.bswap.i16(i16 %a)
ret i16 %res
}
define zeroext i32 @foo2(i32 zeroext %a) {
; CHECK: foo2:
; CHECK: lrvr [[R1:%r.]], %r2
%res = tail call i32 @llvm.bswap.i32(i32 %a)
ret i32 %res
}
define zeroext i64 @foo3(i64 %a) {
; CHECK: foo3:
; CHECK: lrvgr %r2, %r2
%res = tail call i64 @llvm.bswap.i64(i64 %a)
ret i64 %res
}
define zeroext i16 @foo4(i16* %b) {
%a = load i16* %b
%res = tail call i16 @llvm.bswap.i16(i16 %a)
ret i16 %res
}
define zeroext i32 @foo5(i32* %b) {
; CHECK: foo5:
; CHECK: lrv [[R1:%r.]], 0(%r2)
%a = load i32* %b
%res = tail call i32 @llvm.bswap.i32(i32 %a)
ret i32 %res
}
define i64 @foo6(i64* %b) {
; CHECK: foo6:
; CHECK: lrvg %r2, 0(%r2)
%a = load i64* %b
%res = tail call i64 @llvm.bswap.i64(i64 %a)
ret i64 %res
}
define void @foo7(i16 %a, i16* %b) {
%res = tail call i16 @llvm.bswap.i16(i16 %a)
store i16 %res, i16* %b
ret void
}
define void @foo8(i32 %a, i32* %b) {
; CHECK: foo8:
; CHECK: strv %r2, 0(%r3)
%res = tail call i32 @llvm.bswap.i32(i32 %a)
store i32 %res, i32* %b
ret void
}
define void @foo9(i64 %a, i64* %b) {
; CHECK: foo9:
; CHECK: strvg %r2, 0(%r3)
%res = tail call i64 @llvm.bswap.i64(i64 %a)
store i64 %res, i64* %b
ret void
}
declare i16 @llvm.bswap.i16(i16) nounwind readnone
declare i32 @llvm.bswap.i32(i32) nounwind readnone
declare i64 @llvm.bswap.i64(i64) nounwind readnone
@@ -1,12 +0,0 @@
; RUN: llc < %s
target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
target triple = "s390x-unknown-linux-gnu"
define i32 @main() nounwind {
entry:
%call = call i32 (...)* @random() nounwind ; <i32> [#uses=0]
unreachable
}
declare i32 @random(...)
@@ -1,14 +0,0 @@
; RUN: llc < %s -march=systemz | grep nilf | count 1
; RUN: llc < %s -march=systemz | grep nill | count 1
define i32 @gnu_dev_major(i64 %__dev) nounwind readnone {
entry:
%shr = lshr i64 %__dev, 8 ; <i64> [#uses=1]
%shr8 = trunc i64 %shr to i32 ; <i32> [#uses=1]
%shr2 = lshr i64 %__dev, 32 ; <i64> [#uses=1]
%conv = trunc i64 %shr2 to i32 ; <i32> [#uses=1]
%and3 = and i32 %conv, -4096 ; <i32> [#uses=1]
%and6 = and i32 %shr8, 4095 ; <i32> [#uses=1]
%conv5 = or i32 %and6, %and3 ; <i32> [#uses=1]
ret i32 %conv5
}
-13
View File
@@ -1,13 +0,0 @@
; RUN: llc < %s -march=systemz | grep rll
target datalayout = "E-p:64:64:64-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-a0:16:16"
target triple = "s390x-ibm-linux"
define i32 @rotl(i32 %x, i32 %y, i32 %z) nounwind readnone {
entry:
%shl = shl i32 %x, 1 ; <i32> [#uses=1]
%sub = sub i32 32, 1 ; <i32> [#uses=1]
%shr = lshr i32 %x, %sub ; <i32> [#uses=1]
%or = or i32 %shr, %shl ; <i32> [#uses=1]
ret i32 %or
}
@@ -1,19 +0,0 @@
; RUN: llc < %s
target datalayout = "E-p:64:64:64-i1:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128"
target triple = "s390x-ibm-linux"
%struct.re_pattern_buffer = type <{ i8*, i64, i64, i64, i8*, i8*, i64, i8, i8, i8, i8, i8, i8, i8, i8 }>
%struct.re_registers = type <{ i32, i8, i8, i8, i8, i32*, i32* }>
define i32 @xre_search_2(%struct.re_pattern_buffer* nocapture %bufp, i8* %string1, i32 %size1, i8* %string2, i32 %size2, i32 %startpos, i32 %range, %struct.re_registers* %regs, i32 %stop) nounwind {
entry:
%cmp17.i = icmp slt i32 undef, %startpos ; <i1> [#uses=1]
%or.cond.i = or i1 undef, %cmp17.i ; <i1> [#uses=1]
br i1 %or.cond.i, label %byte_re_search_2.exit, label %if.then20.i
if.then20.i: ; preds = %entry
ret i32 -2
byte_re_search_2.exit: ; preds = %entry
ret i32 -1
}
-27
View File
@@ -1,27 +0,0 @@
; RUN: llc < %s
target datalayout = "E-p:64:64:64-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-a0:16:16"
target triple = "s390x-ibm-linux"
define void @compdecomp(i8* nocapture %data, i64 %data_len) nounwind {
entry:
br label %for.body38
for.body38: ; preds = %for.body38, %entry
br i1 undef, label %for.cond220, label %for.body38
for.cond220: ; preds = %for.cond220, %for.body38
br i1 false, label %for.cond220, label %for.end297
for.end297: ; preds = %for.cond220
%tmp334 = load i8* undef ; <i8> [#uses=1]
%conv343 = zext i8 %tmp334 to i32 ; <i32> [#uses=1]
%sub344 = add i32 %conv343, -1 ; <i32> [#uses=1]
%shl345 = shl i32 1, %sub344 ; <i32> [#uses=1]
%conv346 = sext i32 %shl345 to i64 ; <i64> [#uses=1]
br label %for.body356
for.body356: ; preds = %for.body356, %for.end297
%mask.1633 = phi i64 [ %conv346, %for.end297 ], [ undef, %for.body356 ] ; <i64> [#uses=0]
br label %for.body356
}
-25
View File
@@ -1,25 +0,0 @@
; RUN: llc < %s
target datalayout = "E-p:64:64:64-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-a0:16:16"
target triple = "s390x-ibm-linux"
define signext i32 @bit_place_piece(i32 signext %col, i32 signext %player, i64* nocapture %b1, i64* nocapture %b2) nounwind {
entry:
br i1 undef, label %for.body, label %return
for.body: ; preds = %entry
%add = add i32 0, %col ; <i32> [#uses=1]
%sh_prom = zext i32 %add to i64 ; <i64> [#uses=1]
%shl = shl i64 1, %sh_prom ; <i64> [#uses=1]
br i1 undef, label %if.then13, label %if.else
if.then13: ; preds = %for.body
ret i32 0
if.else: ; preds = %for.body
%or34 = or i64 undef, %shl ; <i64> [#uses=0]
ret i32 0
return: ; preds = %entry
ret i32 1
}
@@ -1,25 +0,0 @@
; RUN: llc < %s | FileCheck %s
; RUN: llc < %s -regalloc=basic | FileCheck %s
target datalayout = "E-p:64:64:64-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-a0:16:16"
target triple = "s390x-ibm-linux"
declare void @rdft(i32 signext, i32 signext, double*, i32* nocapture, double*) nounwind
declare double @mp_mul_d2i_test(i32 signext, i32 signext, double* nocapture) nounwind
define void @mp_mul_radix_test_bb3(i32 %radix, i32 %nfft, double* %tmpfft, i32* %ip, double* %w, double* %arrayidx44.reload, double* %call.out) nounwind {
; CHECK: lg %r{{[0-9]+}}, 328(%r15)
newFuncRoot:
br label %bb3
bb4.exitStub: ; preds = %bb3
store double %call, double* %call.out
ret void
bb3: ; preds = %newFuncRoot
tail call void @rdft(i32 signext %nfft, i32 signext -1, double* %arrayidx44.reload, i32* %ip, double* %w) nounwind
%call = tail call double @mp_mul_d2i_test(i32 signext %radix, i32 signext %nfft, double* %tmpfft) ; <double> [#uses=1]
br label %bb4.exitStub
}
@@ -1,16 +0,0 @@
; RUN: llc < %s
target datalayout = "E-p:64:64:64-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-a0:16:16"
target triple = "s390x-ibm-linux"
define float @foo(i32 signext %a) {
entry:
%b = bitcast i32 %a to float
ret float %b
}
define i32 @bar(float %a) {
entry:
%b = bitcast float %a to i32
ret i32 %b
}
@@ -1,32 +0,0 @@
; RUN: llc < %s
target datalayout = "E-p:64:64:64-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-a0:16:16"
target triple = "s390x-ibm-linux"
define signext i32 @dfg_parse() nounwind {
entry:
br i1 undef, label %if.then2208, label %if.else2360
if.then2208: ; preds = %entry
br i1 undef, label %bb.nph3189, label %for.end2270
bb.nph3189: ; preds = %if.then2208
unreachable
for.end2270: ; preds = %if.then2208
%call2279 = call i64 @strlen(i8* undef) nounwind ; <i64> [#uses=1]
%add2281 = add i64 0, %call2279 ; <i64> [#uses=1]
%tmp2283 = trunc i64 %add2281 to i32 ; <i32> [#uses=1]
%tmp2284 = alloca i8, i32 %tmp2283, align 2 ; <i8*> [#uses=1]
%yyd.0.i2561.13 = getelementptr i8* %tmp2284, i64 13 ; <i8*> [#uses=1]
store i8 117, i8* %yyd.0.i2561.13
br label %while.cond.i2558
while.cond.i2558: ; preds = %while.cond.i2558, %for.end2270
br label %while.cond.i2558
if.else2360: ; preds = %entry
unreachable
}
declare i64 @strlen(i8* nocapture) nounwind readonly
@@ -1,21 +0,0 @@
; RUN: llc < %s
target datalayout = "E-p:64:64:64-i1:8:8-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:16:16-f128:128:128"
target triple = "s390x-ibm-linux-gnu"
@__JCR_LIST__ = internal global [0 x i8*] zeroinitializer, section ".jcr", align 8 ; <[0 x i8*]*> [#uses=1]
define internal void @frame_dummy() nounwind {
entry:
%asmtmp = tail call void (i8*)* (void (i8*)*)* asm "", "=r,0"(void (i8*)* @_Jv_RegisterClasses) nounwind ; <void (i8*)*> [#uses=2]
%0 = icmp eq void (i8*)* %asmtmp, null ; <i1> [#uses=1]
br i1 %0, label %return, label %bb3
bb3: ; preds = %entry
tail call void %asmtmp(i8* bitcast ([0 x i8*]* @__JCR_LIST__ to i8*)) nounwind
ret void
return: ; preds = %entry
ret void
}
declare extern_weak void @_Jv_RegisterClasses(i8*)
@@ -1,22 +0,0 @@
; RUN: llc < %s | FileCheck %s
target datalayout = "E-p:64:64:64-i1:8:8-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:16:16-f128:128:128"
target triple = "s390x-ibm-linux-gnu"
define double @foo(double %a, double %b) nounwind {
entry:
; CHECK: cpsdr %f0, %f2, %f0
%0 = tail call double @copysign(double %a, double %b) nounwind readnone
ret double %0
}
define float @bar(float %a, float %b) nounwind {
entry:
; CHECK: cpsdr %f0, %f2, %f0
%0 = tail call float @copysignf(float %a, float %b) nounwind readnone
ret float %0
}
declare double @copysign(double, double) nounwind readnone
declare float @copysignf(float, float) nounwind readnone
-50
View File
@@ -1,50 +0,0 @@
; RUN: llc < %s
target datalayout = "E-p:64:64:64-i8:8:16-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-a0:16:16-n32:64"
target triple = "s390x-elf"
@REGISTER = external global [10 x i32] ; <[10 x i32]*> [#uses=2]
define void @DIVR_P(i32 signext %PRINT_EFFECT) nounwind {
entry:
%REG1 = alloca i32, align 4 ; <i32*> [#uses=2]
%REG2 = alloca i32, align 4 ; <i32*> [#uses=2]
%call = call signext i32 (...)* @FORMAT2(i32* %REG1, i32* %REG2) nounwind ; <i32> [#uses=0]
%tmp = load i32* %REG1 ; <i32> [#uses=1]
%idxprom = sext i32 %tmp to i64 ; <i64> [#uses=1]
%arrayidx = getelementptr inbounds [10 x i32]* @REGISTER, i64 0, i64 %idxprom ; <i32*> [#uses=2]
%tmp1 = load i32* %arrayidx ; <i32> [#uses=2]
%tmp2 = load i32* %REG2 ; <i32> [#uses=1]
%idxprom3 = sext i32 %tmp2 to i64 ; <i64> [#uses=1]
%arrayidx4 = getelementptr inbounds [10 x i32]* @REGISTER, i64 0, i64 %idxprom3 ; <i32*> [#uses=3]
%tmp5 = load i32* %arrayidx4 ; <i32> [#uses=3]
%cmp6 = icmp sgt i32 %tmp5, 8388607 ; <i1> [#uses=1]
%REG2_SIGN.0 = select i1 %cmp6, i32 -1, i32 1 ; <i32> [#uses=2]
%cmp10 = icmp eq i32 %REG2_SIGN.0, 1 ; <i1> [#uses=1]
%not.cmp = icmp slt i32 %tmp1, 8388608 ; <i1> [#uses=2]
%or.cond = and i1 %cmp10, %not.cmp ; <i1> [#uses=1]
br i1 %or.cond, label %if.then13, label %if.end25
if.then13: ; preds = %entry
%div = sdiv i32 %tmp5, %tmp1 ; <i32> [#uses=2]
store i32 %div, i32* %arrayidx4
br label %if.end25
if.end25: ; preds = %if.then13, %entry
%tmp35 = phi i32 [ %div, %if.then13 ], [ %tmp5, %entry ] ; <i32> [#uses=1]
%cmp27 = icmp eq i32 %REG2_SIGN.0, -1 ; <i1> [#uses=1]
%or.cond46 = and i1 %cmp27, %not.cmp ; <i1> [#uses=1]
br i1 %or.cond46, label %if.then31, label %if.end45
if.then31: ; preds = %if.end25
%sub = sub i32 16777216, %tmp35 ; <i32> [#uses=1]
%tmp39 = load i32* %arrayidx ; <i32> [#uses=1]
%div40 = udiv i32 %sub, %tmp39 ; <i32> [#uses=1]
%sub41 = sub i32 16777216, %div40 ; <i32> [#uses=1]
store i32 %sub41, i32* %arrayidx4
ret void
if.end45: ; preds = %if.end25
ret void
}
declare signext i32 @FORMAT2(...)
@@ -1,28 +0,0 @@
; RUN: llc -O0 -march=systemz -asm-verbose < %s | FileCheck %s
; Check that DEBUG_VALUE comments come through on a variety of targets.
define i32 @main() nounwind ssp {
entry:
; CHECK: DEBUG_VALUE
call void @llvm.dbg.value(metadata !6, i64 0, metadata !7), !dbg !9
ret i32 0, !dbg !10
}
declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone
declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
!llvm.dbg.sp = !{!0}
!0 = metadata !{i32 589870, i32 0, metadata !1, metadata !"main", metadata !"main", metadata !"", metadata !1, i32 2, metadata !3, i1 false, i1 true, i32 0, i32 0, null, i32 0, i1 false, i32 ()* @main} ; [ DW_TAG_subprogram ]
!1 = metadata !{i32 589865, metadata !"/tmp/x.c", metadata !"/Users/manav", metadata !2} ; [ DW_TAG_file_type ]
!2 = metadata !{i32 589841, i32 0, i32 12, metadata !"/tmp/x.c", metadata !"/Users/manav", metadata !"clang version 2.9 (trunk 120996)", i1 true, i1 false, metadata !"", i32 0} ; [ DW_TAG_compile_unit ]
!3 = metadata !{i32 589845, metadata !1, metadata !"", metadata !1, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !4, i32 0, null} ; [ DW_TAG_subroutine_type ]
!4 = metadata !{metadata !5}
!5 = metadata !{i32 589860, metadata !2, metadata !"int", metadata !1, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ]
!6 = metadata !{i32 0}
!7 = metadata !{i32 590080, metadata !8, metadata !"i", metadata !1, i32 3, metadata !5, i32 0} ; [ DW_TAG_auto_variable ]
!8 = metadata !{i32 589835, metadata !0, i32 2, i32 12, metadata !1, i32 0} ; [ DW_TAG_lexical_block ]
!9 = metadata !{i32 3, i32 11, metadata !8, null}
!10 = metadata !{i32 4, i32 2, metadata !8, null}
-5
View File
@@ -1,5 +0,0 @@
load_lib llvm.exp
if { [llvm_supports_target SystemZ] } {
RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
}