[llvm] r338926 - [X86] Layout tests exactly as update_llc_test_checks.py would
Reid Kleckner via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 3 14:58:00 PDT 2018
Author: rnk
Date: Fri Aug 3 14:57:59 2018
New Revision: 338926
URL: http://llvm.org/viewvc/llvm-project?rev=338926&view=rev
Log:
[X86] Layout tests exactly as update_llc_test_checks.py would
Put the LLVM IR at the bottom of the function instead of the top. In my
next patch, I will run update_llc_test_checks.py on this file, and I
want to only highlight the diffs in the CHECK lines. Hopefully by doing
this change first, the patch will be more understandable.
Modified:
llvm/trunk/test/CodeGen/X86/abi-isel.ll
Modified: llvm/trunk/test/CodeGen/X86/abi-isel.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/abi-isel.ll?rev=338926&r1=338925&r2=338926&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/abi-isel.ll (original)
+++ llvm/trunk/test/CodeGen/X86/abi-isel.ll Fri Aug 3 14:57:59 2018
@@ -32,11 +32,6 @@
@dxdst = global [32 x i32] zeroinitializer, align 32
define void @foo00() nounwind {
-entry:
- %0 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @src, i32 0, i64 0), align 4
- store i32 %0, i32* getelementptr ([131072 x i32], [131072 x i32]* @dst, i32 0, i64 0), align 4
- ret void
-
; LINUX-64-STATIC-LABEL: foo00:
; LINUX-64-STATIC: movl src(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], dst
@@ -101,14 +96,14 @@ entry:
; DARWIN-64-PIC-NEXT: movq _dst at GOTPCREL(%rip), [[RCX:%r..]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], ([[RCX]])
; DARWIN-64-PIC-NEXT: ret
-}
-
-define void @fxo00() nounwind {
entry:
- %0 = load i32, i32* getelementptr ([32 x i32], [32 x i32]* @xsrc, i32 0, i64 0), align 4
- store i32 %0, i32* getelementptr ([32 x i32], [32 x i32]* @xdst, i32 0, i64 0), align 4
+ %0 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @src, i32 0, i64 0), align 4
+ store i32 %0, i32* getelementptr ([131072 x i32], [131072 x i32]* @dst, i32 0, i64 0), align 4
ret void
+}
+
+define void @fxo00() nounwind {
; LINUX-64-STATIC-LABEL: fxo00:
; LINUX-64-STATIC: movl xsrc(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], xdst
@@ -173,12 +168,14 @@ entry:
; DARWIN-64-PIC-NEXT: movq _xdst at GOTPCREL(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], ([[RCX]])
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32, i32* getelementptr ([32 x i32], [32 x i32]* @xsrc, i32 0, i64 0), align 4
+ store i32 %0, i32* getelementptr ([32 x i32], [32 x i32]* @xdst, i32 0, i64 0), align 4
+ ret void
+
}
define void @foo01() nounwind {
-entry:
- store i32* getelementptr ([131072 x i32], [131072 x i32]* @dst, i32 0, i32 0), i32** @ptr, align 8
- ret void
; LINUX-64-STATIC-LABEL: foo01:
; LINUX-64-STATIC: movq $dst, ptr
; LINUX-64-STATIC: ret
@@ -233,12 +230,12 @@ entry:
; DARWIN-64-PIC-NEXT: movq _ptr at GOTPCREL(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movq [[RAX]], ([[RCX]])
; DARWIN-64-PIC-NEXT: ret
+entry:
+ store i32* getelementptr ([131072 x i32], [131072 x i32]* @dst, i32 0, i32 0), i32** @ptr, align 8
+ ret void
}
define void @fxo01() nounwind {
-entry:
- store i32* getelementptr ([32 x i32], [32 x i32]* @xdst, i32 0, i32 0), i32** @ptr, align 8
- ret void
; LINUX-64-STATIC-LABEL: fxo01:
; LINUX-64-STATIC: movq $xdst, ptr
; LINUX-64-STATIC: ret
@@ -293,14 +290,12 @@ entry:
; DARWIN-64-PIC-NEXT: movq _ptr at GOTPCREL(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movq [[RAX]], ([[RCX]])
; DARWIN-64-PIC-NEXT: ret
+entry:
+ store i32* getelementptr ([32 x i32], [32 x i32]* @xdst, i32 0, i32 0), i32** @ptr, align 8
+ ret void
}
define void @foo02() nounwind {
-entry:
- %0 = load i32*, i32** @ptr, align 8
- %1 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @src, i32 0, i64 0), align 4
- store i32 %1, i32* %0, align 4
- ret void
; LINUX-64-STATIC-LABEL: foo02:
; LINUX-64-STATIC: movl src(%rip), %
; LINUX-64-STATIC: movq ptr(%rip), %
@@ -375,13 +370,14 @@ entry:
; DARWIN-64-PIC-NEXT: movq ([[RCX]]), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], ([[RCX]])
; DARWIN-64-PIC-NEXT: ret
-}
-
-define void @fxo02() nounwind {
entry:
%0 = load i32*, i32** @ptr, align 8
- %1 = load i32, i32* getelementptr ([32 x i32], [32 x i32]* @xsrc, i32 0, i64 0), align 4
+ %1 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @src, i32 0, i64 0), align 4
store i32 %1, i32* %0, align 4
+ ret void
+}
+
+define void @fxo02() nounwind {
; LINUX-64-STATIC-LABEL: fxo02:
; LINUX-64-STATIC: movl xsrc(%rip), %
; LINUX-64-STATIC: movq ptr(%rip), %
@@ -393,7 +389,6 @@ entry:
; LINUX-32-STATIC-NEXT: movl ptr, [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], ([[ECX]])
; LINUX-32-STATIC-NEXT: ret
- ret void
; LINUX-32-PIC-LABEL: fxo02:
; LINUX-32-PIC: movl xsrc, [[EAX:%e.x]]
@@ -457,13 +452,14 @@ entry:
; DARWIN-64-PIC-NEXT: movq ([[RCX]]), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], ([[RCX]])
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32*, i32** @ptr, align 8
+ %1 = load i32, i32* getelementptr ([32 x i32], [32 x i32]* @xsrc, i32 0, i64 0), align 4
+ store i32 %1, i32* %0, align 4
+ ret void
}
define void @foo03() nounwind {
-entry:
- %0 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @dsrc, i32 0, i64 0), align 32
- store i32 %0, i32* getelementptr ([131072 x i32], [131072 x i32]* @ddst, i32 0, i64 0), align 32
- ret void
; LINUX-64-STATIC-LABEL: foo03:
; LINUX-64-STATIC: movl dsrc(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], ddst
@@ -518,12 +514,13 @@ entry:
; DARWIN-64-PIC: movl _dsrc(%rip), [[EAX:%e.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], _ddst(%rip)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @dsrc, i32 0, i64 0), align 32
+ store i32 %0, i32* getelementptr ([131072 x i32], [131072 x i32]* @ddst, i32 0, i64 0), align 32
+ ret void
}
define void @foo04() nounwind {
-entry:
- store i32* getelementptr ([131072 x i32], [131072 x i32]* @ddst, i32 0, i32 0), i32** @dptr, align 8
- ret void
; LINUX-64-STATIC-LABEL: foo04:
; LINUX-64-STATIC: movq $ddst, dptr
; LINUX-64-STATIC: ret
@@ -572,14 +569,12 @@ entry:
; DARWIN-64-PIC: leaq _ddst(%rip), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: movq [[RAX]], _dptr(%rip)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ store i32* getelementptr ([131072 x i32], [131072 x i32]* @ddst, i32 0, i32 0), i32** @dptr, align 8
+ ret void
}
define void @foo05() nounwind {
-entry:
- %0 = load i32*, i32** @dptr, align 8
- %1 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @dsrc, i32 0, i64 0), align 32
- store i32 %1, i32* %0, align 4
- ret void
; LINUX-64-STATIC-LABEL: foo05:
; LINUX-64-STATIC: movl dsrc(%rip), %
; LINUX-64-STATIC: movq dptr(%rip), %
@@ -644,13 +639,14 @@ entry:
; DARWIN-64-PIC-NEXT: movq _dptr(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], ([[RCX]])
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32*, i32** @dptr, align 8
+ %1 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @dsrc, i32 0, i64 0), align 32
+ store i32 %1, i32* %0, align 4
+ ret void
}
define void @foo06() nounwind {
-entry:
- %0 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @lsrc, i32 0, i64 0), align 4
- store i32 %0, i32* getelementptr ([131072 x i32], [131072 x i32]* @ldst, i32 0, i64 0), align 4
- ret void
; LINUX-64-STATIC-LABEL: foo06:
; LINUX-64-STATIC: movl lsrc(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], ldst(%rip)
@@ -703,12 +699,13 @@ entry:
; DARWIN-64-PIC: movl _lsrc(%rip), [[EAX:%e.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], _ldst(%rip)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @lsrc, i32 0, i64 0), align 4
+ store i32 %0, i32* getelementptr ([131072 x i32], [131072 x i32]* @ldst, i32 0, i64 0), align 4
+ ret void
}
define void @foo07() nounwind {
-entry:
- store i32* getelementptr ([131072 x i32], [131072 x i32]* @ldst, i32 0, i32 0), i32** @lptr, align 8
- ret void
; LINUX-64-STATIC-LABEL: foo07:
; LINUX-64-STATIC: movq $ldst, lptr
; LINUX-64-STATIC: ret
@@ -756,14 +753,12 @@ entry:
; DARWIN-64-PIC: leaq _ldst(%rip), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: movq [[RAX]], _lptr(%rip)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ store i32* getelementptr ([131072 x i32], [131072 x i32]* @ldst, i32 0, i32 0), i32** @lptr, align 8
+ ret void
}
define void @foo08() nounwind {
-entry:
- %0 = load i32*, i32** @lptr, align 8
- %1 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @lsrc, i32 0, i64 0), align 4
- store i32 %1, i32* %0, align 4
- ret void
; LINUX-64-STATIC-LABEL: foo08:
; LINUX-64-STATIC: movl lsrc(%rip), %
; LINUX-64-STATIC: movq lptr(%rip), %
@@ -826,13 +821,14 @@ entry:
; DARWIN-64-PIC-NEXT: movq _lptr(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], ([[RCX]])
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32*, i32** @lptr, align 8
+ %1 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @lsrc, i32 0, i64 0), align 4
+ store i32 %1, i32* %0, align 4
+ ret void
}
define void @qux00() nounwind {
-entry:
- %0 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @src, i32 0, i64 16), align 4
- store i32 %0, i32* getelementptr ([131072 x i32], [131072 x i32]* @dst, i32 0, i64 16), align 4
- ret void
; LINUX-64-STATIC-LABEL: qux00:
; LINUX-64-STATIC: movl src+64(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], dst+64(%rip)
@@ -897,13 +893,13 @@ entry:
; DARWIN-64-PIC-NEXT: movq _dst at GOTPCREL(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], 64([[RCX]])
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @src, i32 0, i64 16), align 4
+ store i32 %0, i32* getelementptr ([131072 x i32], [131072 x i32]* @dst, i32 0, i64 16), align 4
+ ret void
}
define void @qxx00() nounwind {
-entry:
- %0 = load i32, i32* getelementptr ([32 x i32], [32 x i32]* @xsrc, i32 0, i64 16), align 4
- store i32 %0, i32* getelementptr ([32 x i32], [32 x i32]* @xdst, i32 0, i64 16), align 4
- ret void
; LINUX-64-STATIC-LABEL: qxx00:
; LINUX-64-STATIC: movl xsrc+64(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], xdst+64(%rip)
@@ -968,12 +964,13 @@ entry:
; DARWIN-64-PIC-NEXT: movq _xdst at GOTPCREL(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], 64([[RCX]])
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32, i32* getelementptr ([32 x i32], [32 x i32]* @xsrc, i32 0, i64 16), align 4
+ store i32 %0, i32* getelementptr ([32 x i32], [32 x i32]* @xdst, i32 0, i64 16), align 4
+ ret void
}
define void @qux01() nounwind {
-entry:
- store i32* getelementptr ([131072 x i32], [131072 x i32]* @dst, i32 0, i64 16), i32** @ptr, align 8
- ret void
; LINUX-64-STATIC-LABEL: qux01:
; LINUX-64-STATIC: movq $dst+64, ptr
; LINUX-64-STATIC: ret
@@ -1034,12 +1031,12 @@ entry:
; DARWIN-64-PIC-NEXT: movq _ptr at GOTPCREL(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movq [[RAX]], ([[RCX]])
; DARWIN-64-PIC-NEXT: ret
+entry:
+ store i32* getelementptr ([131072 x i32], [131072 x i32]* @dst, i32 0, i64 16), i32** @ptr, align 8
+ ret void
}
define void @qxx01() nounwind {
-entry:
- store i32* getelementptr ([32 x i32], [32 x i32]* @xdst, i32 0, i64 16), i32** @ptr, align 8
- ret void
; LINUX-64-STATIC-LABEL: qxx01:
; LINUX-64-STATIC: movq $xdst+64, ptr
; LINUX-64-STATIC: ret
@@ -1100,14 +1097,12 @@ entry:
; DARWIN-64-PIC-NEXT: movq _ptr at GOTPCREL(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movq [[RAX]], ([[RCX]])
; DARWIN-64-PIC-NEXT: ret
+entry:
+ store i32* getelementptr ([32 x i32], [32 x i32]* @xdst, i32 0, i64 16), i32** @ptr, align 8
+ ret void
}
define void @qux02() nounwind {
-entry:
- %0 = load i32*, i32** @ptr, align 8
- %1 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @src, i32 0, i64 16), align 4
- %2 = getelementptr i32, i32* %0, i64 16
- store i32 %1, i32* %2, align 4
; LINUX-64-STATIC-LABEL: qux02:
; LINUX-64-STATIC: movl src+64(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movq ptr(%rip), [[RCX:%r.x]]
@@ -1119,7 +1114,6 @@ entry:
; LINUX-32-STATIC-NEXT: movl ptr, [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], 64([[ECX]])
; LINUX-32-STATIC-NEXT: ret
- ret void
; LINUX-32-PIC-LABEL: qux02:
; LINUX-32-PIC: movl src+64, [[EAX:%e.x]]
@@ -1183,14 +1177,15 @@ entry:
; DARWIN-64-PIC-NEXT: movq ([[RCX]]), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], 64([[RCX]])
; DARWIN-64-PIC-NEXT: ret
-}
-
-define void @qxx02() nounwind {
entry:
%0 = load i32*, i32** @ptr, align 8
- %1 = load i32, i32* getelementptr ([32 x i32], [32 x i32]* @xsrc, i32 0, i64 16), align 4
+ %1 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @src, i32 0, i64 16), align 4
%2 = getelementptr i32, i32* %0, i64 16
store i32 %1, i32* %2, align 4
+ ret void
+}
+
+define void @qxx02() nounwind {
; LINUX-64-STATIC-LABEL: qxx02:
; LINUX-64-STATIC: movl xsrc+64(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movq ptr(%rip), [[RCX:%r.x]]
@@ -1202,7 +1197,6 @@ entry:
; LINUX-32-STATIC-NEXT: movl ptr, [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], 64([[ECX]])
; LINUX-32-STATIC-NEXT: ret
- ret void
; LINUX-32-PIC-LABEL: qxx02:
; LINUX-32-PIC: movl xsrc+64, [[EAX:%e.x]]
@@ -1266,13 +1260,15 @@ entry:
; DARWIN-64-PIC-NEXT: movq ([[RCX]]), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], 64([[RCX]])
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32*, i32** @ptr, align 8
+ %1 = load i32, i32* getelementptr ([32 x i32], [32 x i32]* @xsrc, i32 0, i64 16), align 4
+ %2 = getelementptr i32, i32* %0, i64 16
+ store i32 %1, i32* %2, align 4
+ ret void
}
define void @qux03() nounwind {
-entry:
- %0 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @dsrc, i32 0, i64 16), align 32
- store i32 %0, i32* getelementptr ([131072 x i32], [131072 x i32]* @ddst, i32 0, i64 16), align 32
- ret void
; LINUX-64-STATIC-LABEL: qux03:
; LINUX-64-STATIC: movl dsrc+64(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], ddst+64(%rip)
@@ -1327,12 +1323,13 @@ entry:
; DARWIN-64-PIC: movl _dsrc+64(%rip), [[EAX:%e.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], _ddst+64(%rip)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @dsrc, i32 0, i64 16), align 32
+ store i32 %0, i32* getelementptr ([131072 x i32], [131072 x i32]* @ddst, i32 0, i64 16), align 32
+ ret void
}
define void @qux04() nounwind {
-entry:
- store i32* getelementptr ([131072 x i32], [131072 x i32]* @ddst, i32 0, i64 16), i32** @dptr, align 8
- ret void
; LINUX-64-STATIC-LABEL: qux04:
; LINUX-64-STATIC: movq $ddst+64, dptr(%rip)
; LINUX-64-STATIC: ret
@@ -1382,14 +1379,12 @@ entry:
; DARWIN-64-PIC: leaq _ddst+64(%rip), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: movq [[RAX]], _dptr(%rip)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ store i32* getelementptr ([131072 x i32], [131072 x i32]* @ddst, i32 0, i64 16), i32** @dptr, align 8
+ ret void
}
define void @qux05() nounwind {
-entry:
- %0 = load i32*, i32** @dptr, align 8
- %1 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @dsrc, i32 0, i64 16), align 32
- %2 = getelementptr i32, i32* %0, i64 16
- store i32 %1, i32* %2, align 4
; LINUX-64-STATIC-LABEL: qux05:
; LINUX-64-STATIC: movl dsrc+64(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movq dptr(%rip), [[RCX:%r.x]]
@@ -1401,7 +1396,6 @@ entry:
; LINUX-32-STATIC-NEXT: movl dptr, [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], 64([[ECX]])
; LINUX-32-STATIC-NEXT: ret
- ret void
; LINUX-32-PIC-LABEL: qux05:
; LINUX-32-PIC: movl dsrc+64, [[EAX:%e.x]]
@@ -1455,13 +1449,15 @@ entry:
; DARWIN-64-PIC-NEXT: movq _dptr(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], 64([[RCX]])
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32*, i32** @dptr, align 8
+ %1 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @dsrc, i32 0, i64 16), align 32
+ %2 = getelementptr i32, i32* %0, i64 16
+ store i32 %1, i32* %2, align 4
+ ret void
}
define void @qux06() nounwind {
-entry:
- %0 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @lsrc, i32 0, i64 16), align 4
- store i32 %0, i32* getelementptr ([131072 x i32], [131072 x i32]* @ldst, i32 0, i64 16), align 4
- ret void
; LINUX-64-STATIC-LABEL: qux06:
; LINUX-64-STATIC: movl lsrc+64(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], ldst+64
@@ -1514,12 +1510,13 @@ entry:
; DARWIN-64-PIC: movl _lsrc+64(%rip), [[EAX:%e.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], _ldst+64(%rip)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @lsrc, i32 0, i64 16), align 4
+ store i32 %0, i32* getelementptr ([131072 x i32], [131072 x i32]* @ldst, i32 0, i64 16), align 4
+ ret void
}
define void @qux07() nounwind {
-entry:
- store i32* getelementptr ([131072 x i32], [131072 x i32]* @ldst, i32 0, i64 16), i32** @lptr, align 8
- ret void
; LINUX-64-STATIC-LABEL: qux07:
; LINUX-64-STATIC: movq $ldst+64, lptr
; LINUX-64-STATIC: ret
@@ -1567,14 +1564,12 @@ entry:
; DARWIN-64-PIC: leaq _ldst+64(%rip), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: movq [[RAX]], _lptr(%rip)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ store i32* getelementptr ([131072 x i32], [131072 x i32]* @ldst, i32 0, i64 16), i32** @lptr, align 8
+ ret void
}
define void @qux08() nounwind {
-entry:
- %0 = load i32*, i32** @lptr, align 8
- %1 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @lsrc, i32 0, i64 16), align 4
- %2 = getelementptr i32, i32* %0, i64 16
- store i32 %1, i32* %2, align 4
; LINUX-64-STATIC-LABEL: qux08:
; LINUX-64-STATIC: movl lsrc+64(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movq lptr(%rip), [[RCX:%r.x]]
@@ -1586,7 +1581,6 @@ entry:
; LINUX-32-STATIC-NEXT: movl lptr, [[ECX:%e.x]]
; LINUX-32-STATIC-NEXT: movl [[EAX]], 64([[ECX]])
; LINUX-32-STATIC-NEXT: ret
- ret void
; LINUX-32-PIC-LABEL: qux08:
; LINUX-32-PIC: movl lsrc+64, [[EAX:%e.x]]
@@ -1638,15 +1632,15 @@ entry:
; DARWIN-64-PIC-NEXT: movq _lptr(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], 64([[RCX]])
; DARWIN-64-PIC-NEXT: ret
-}
-
-define void @ind00(i64 %i) nounwind {
entry:
- %0 = getelementptr [131072 x i32], [131072 x i32]* @src, i64 0, i64 %i
- %1 = load i32, i32* %0, align 4
- %2 = getelementptr [131072 x i32], [131072 x i32]* @dst, i64 0, i64 %i
+ %0 = load i32*, i32** @lptr, align 8
+ %1 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @lsrc, i32 0, i64 16), align 4
+ %2 = getelementptr i32, i32* %0, i64 16
store i32 %1, i32* %2, align 4
ret void
+}
+
+define void @ind00(i64 %i) nounwind {
; LINUX-64-STATIC-LABEL: ind00:
; LINUX-64-STATIC: movl src(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], dst(,%rdi,4)
@@ -1716,15 +1710,15 @@ entry:
; DARWIN-64-PIC-NEXT: movq _dst at GOTPCREL(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], ([[RCX]],%rdi,4)
; DARWIN-64-PIC-NEXT: ret
-}
-
-define void @ixd00(i64 %i) nounwind {
entry:
- %0 = getelementptr [32 x i32], [32 x i32]* @xsrc, i64 0, i64 %i
+ %0 = getelementptr [131072 x i32], [131072 x i32]* @src, i64 0, i64 %i
%1 = load i32, i32* %0, align 4
- %2 = getelementptr [32 x i32], [32 x i32]* @xdst, i64 0, i64 %i
+ %2 = getelementptr [131072 x i32], [131072 x i32]* @dst, i64 0, i64 %i
store i32 %1, i32* %2, align 4
ret void
+}
+
+define void @ixd00(i64 %i) nounwind {
; LINUX-64-STATIC-LABEL: ixd00:
; LINUX-64-STATIC: movl xsrc(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], xdst(,%rdi,4)
@@ -1794,13 +1788,15 @@ entry:
; DARWIN-64-PIC-NEXT: movq _xdst at GOTPCREL(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], ([[RCX]],%rdi,4)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = getelementptr [32 x i32], [32 x i32]* @xsrc, i64 0, i64 %i
+ %1 = load i32, i32* %0, align 4
+ %2 = getelementptr [32 x i32], [32 x i32]* @xdst, i64 0, i64 %i
+ store i32 %1, i32* %2, align 4
+ ret void
}
define void @ind01(i64 %i) nounwind {
-entry:
- %0 = getelementptr [131072 x i32], [131072 x i32]* @dst, i64 0, i64 %i
- store i32* %0, i32** @ptr, align 8
- ret void
; LINUX-64-STATIC-LABEL: ind01:
; LINUX-64-STATIC: leaq dst(,%rdi,4), [[RAX:%r.x]]
; LINUX-64-STATIC: movq [[RAX]], ptr
@@ -1870,13 +1866,13 @@ entry:
; DARWIN-64-PIC-NEXT: movq _ptr at GOTPCREL(%rip), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: movq %rdi, ([[RAX]])
; DARWIN-64-PIC-NEXT: ret
-}
-
-define void @ixd01(i64 %i) nounwind {
entry:
- %0 = getelementptr [32 x i32], [32 x i32]* @xdst, i64 0, i64 %i
+ %0 = getelementptr [131072 x i32], [131072 x i32]* @dst, i64 0, i64 %i
store i32* %0, i32** @ptr, align 8
ret void
+}
+
+define void @ixd01(i64 %i) nounwind {
; LINUX-64-STATIC-LABEL: ixd01:
; LINUX-64-STATIC: leaq xdst(,%rdi,4), [[RAX:%r.x]]
; LINUX-64-STATIC: movq [[RAX]], ptr
@@ -1946,16 +1942,13 @@ entry:
; DARWIN-64-PIC-NEXT: movq _ptr at GOTPCREL(%rip), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: movq %rdi, ([[RAX]])
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = getelementptr [32 x i32], [32 x i32]* @xdst, i64 0, i64 %i
+ store i32* %0, i32** @ptr, align 8
+ ret void
}
define void @ind02(i64 %i) nounwind {
-entry:
- %0 = load i32*, i32** @ptr, align 8
- %1 = getelementptr [131072 x i32], [131072 x i32]* @src, i64 0, i64 %i
- %2 = load i32, i32* %1, align 4
- %3 = getelementptr i32, i32* %0, i64 %i
- store i32 %2, i32* %3, align 4
- ret void
; LINUX-64-STATIC-LABEL: ind02:
; LINUX-64-STATIC: movl src(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movq ptr(%rip), [[RCX:%r.x]]
@@ -2035,16 +2028,16 @@ entry:
; DARWIN-64-PIC-NEXT: movq ([[RCX]]), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], ([[RCX]],%rdi,4)
; DARWIN-64-PIC-NEXT: ret
-}
-
-define void @ixd02(i64 %i) nounwind {
entry:
%0 = load i32*, i32** @ptr, align 8
- %1 = getelementptr [32 x i32], [32 x i32]* @xsrc, i64 0, i64 %i
+ %1 = getelementptr [131072 x i32], [131072 x i32]* @src, i64 0, i64 %i
%2 = load i32, i32* %1, align 4
%3 = getelementptr i32, i32* %0, i64 %i
store i32 %2, i32* %3, align 4
ret void
+}
+
+define void @ixd02(i64 %i) nounwind {
; LINUX-64-STATIC-LABEL: ixd02:
; LINUX-64-STATIC: movl xsrc(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movq ptr(%rip), [[RCX:%r.x]]
@@ -2124,15 +2117,16 @@ entry:
; DARWIN-64-PIC-NEXT: movq ([[RCX]]), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], ([[RCX]],%rdi,4)
; DARWIN-64-PIC-NEXT: ret
-}
-
-define void @ind03(i64 %i) nounwind {
entry:
- %0 = getelementptr [131072 x i32], [131072 x i32]* @dsrc, i64 0, i64 %i
- %1 = load i32, i32* %0, align 4
- %2 = getelementptr [131072 x i32], [131072 x i32]* @ddst, i64 0, i64 %i
- store i32 %1, i32* %2, align 4
+ %0 = load i32*, i32** @ptr, align 8
+ %1 = getelementptr [32 x i32], [32 x i32]* @xsrc, i64 0, i64 %i
+ %2 = load i32, i32* %1, align 4
+ %3 = getelementptr i32, i32* %0, i64 %i
+ store i32 %2, i32* %3, align 4
ret void
+}
+
+define void @ind03(i64 %i) nounwind {
; LINUX-64-STATIC-LABEL: ind03:
; LINUX-64-STATIC: movl dsrc(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], ddst(,%rdi,4)
@@ -2198,13 +2192,15 @@ entry:
; DARWIN-64-PIC-NEXT: leaq _ddst(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], ([[RCX]],%rdi,4)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = getelementptr [131072 x i32], [131072 x i32]* @dsrc, i64 0, i64 %i
+ %1 = load i32, i32* %0, align 4
+ %2 = getelementptr [131072 x i32], [131072 x i32]* @ddst, i64 0, i64 %i
+ store i32 %1, i32* %2, align 4
+ ret void
}
define void @ind04(i64 %i) nounwind {
-entry:
- %0 = getelementptr [131072 x i32], [131072 x i32]* @ddst, i64 0, i64 %i
- store i32* %0, i32** @dptr, align 8
- ret void
; LINUX-64-STATIC-LABEL: ind04:
; LINUX-64-STATIC: leaq ddst(,%rdi,4), [[RAX:%r.x]]
; LINUX-64-STATIC: movq [[RAX]], dptr
@@ -2267,16 +2263,13 @@ entry:
; DARWIN-64-PIC-NEXT: leaq ([[RAX]],%rdi,4), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: movq [[RAX]], _dptr(%rip)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = getelementptr [131072 x i32], [131072 x i32]* @ddst, i64 0, i64 %i
+ store i32* %0, i32** @dptr, align 8
+ ret void
}
define void @ind05(i64 %i) nounwind {
-entry:
- %0 = load i32*, i32** @dptr, align 8
- %1 = getelementptr [131072 x i32], [131072 x i32]* @dsrc, i64 0, i64 %i
- %2 = load i32, i32* %1, align 4
- %3 = getelementptr i32, i32* %0, i64 %i
- store i32 %2, i32* %3, align 4
- ret void
; LINUX-64-STATIC-LABEL: ind05:
; LINUX-64-STATIC: movl dsrc(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movq dptr(%rip), [[RCX:%r.x]]
@@ -2349,15 +2342,16 @@ entry:
; DARWIN-64-PIC-NEXT: movq _dptr(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], ([[RCX]],%rdi,4)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32*, i32** @dptr, align 8
+ %1 = getelementptr [131072 x i32], [131072 x i32]* @dsrc, i64 0, i64 %i
+ %2 = load i32, i32* %1, align 4
+ %3 = getelementptr i32, i32* %0, i64 %i
+ store i32 %2, i32* %3, align 4
+ ret void
}
define void @ind06(i64 %i) nounwind {
-entry:
- %0 = getelementptr [131072 x i32], [131072 x i32]* @lsrc, i64 0, i64 %i
- %1 = load i32, i32* %0, align 4
- %2 = getelementptr [131072 x i32], [131072 x i32]* @ldst, i64 0, i64 %i
- store i32 %1, i32* %2, align 4
- ret void
; LINUX-64-STATIC-LABEL: ind06:
; LINUX-64-STATIC: movl lsrc(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], ldst(,%rdi,4)
@@ -2423,13 +2417,15 @@ entry:
; DARWIN-64-PIC-NEXT: leaq _ldst(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], ([[RCX]],%rdi,4)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = getelementptr [131072 x i32], [131072 x i32]* @lsrc, i64 0, i64 %i
+ %1 = load i32, i32* %0, align 4
+ %2 = getelementptr [131072 x i32], [131072 x i32]* @ldst, i64 0, i64 %i
+ store i32 %1, i32* %2, align 4
+ ret void
}
define void @ind07(i64 %i) nounwind {
-entry:
- %0 = getelementptr [131072 x i32], [131072 x i32]* @ldst, i64 0, i64 %i
- store i32* %0, i32** @lptr, align 8
- ret void
; LINUX-64-STATIC-LABEL: ind07:
; LINUX-64-STATIC: leaq ldst(,%rdi,4), [[RAX:%r.x]]
; LINUX-64-STATIC: movq [[RAX]], lptr
@@ -2491,16 +2487,13 @@ entry:
; DARWIN-64-PIC-NEXT: leaq ([[RAX]],%rdi,4), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: movq [[RAX]], _lptr(%rip)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = getelementptr [131072 x i32], [131072 x i32]* @ldst, i64 0, i64 %i
+ store i32* %0, i32** @lptr, align 8
+ ret void
}
define void @ind08(i64 %i) nounwind {
-entry:
- %0 = load i32*, i32** @lptr, align 8
- %1 = getelementptr [131072 x i32], [131072 x i32]* @lsrc, i64 0, i64 %i
- %2 = load i32, i32* %1, align 4
- %3 = getelementptr i32, i32* %0, i64 %i
- store i32 %2, i32* %3, align 4
- ret void
; LINUX-64-STATIC-LABEL: ind08:
; LINUX-64-STATIC: movl lsrc(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movq lptr(%rip), [[RCX:%r.x]]
@@ -2572,16 +2565,16 @@ entry:
; DARWIN-64-PIC-NEXT: movq _lptr(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], ([[RCX]],%rdi,4)
; DARWIN-64-PIC-NEXT: ret
-}
-
-define void @off00(i64 %i) nounwind {
entry:
- %0 = add i64 %i, 16
- %1 = getelementptr [131072 x i32], [131072 x i32]* @src, i64 0, i64 %0
+ %0 = load i32*, i32** @lptr, align 8
+ %1 = getelementptr [131072 x i32], [131072 x i32]* @lsrc, i64 0, i64 %i
%2 = load i32, i32* %1, align 4
- %3 = getelementptr [131072 x i32], [131072 x i32]* @dst, i64 0, i64 %0
+ %3 = getelementptr i32, i32* %0, i64 %i
store i32 %2, i32* %3, align 4
ret void
+}
+
+define void @off00(i64 %i) nounwind {
; LINUX-64-STATIC-LABEL: off00:
; LINUX-64-STATIC: movl src+64(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], dst+64(,%rdi,4)
@@ -2651,16 +2644,16 @@ entry:
; DARWIN-64-PIC-NEXT: movq _dst at GOTPCREL(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], 64([[RCX]],%rdi,4)
; DARWIN-64-PIC-NEXT: ret
-}
-
-define void @oxf00(i64 %i) nounwind {
entry:
%0 = add i64 %i, 16
- %1 = getelementptr [32 x i32], [32 x i32]* @xsrc, i64 0, i64 %0
+ %1 = getelementptr [131072 x i32], [131072 x i32]* @src, i64 0, i64 %0
%2 = load i32, i32* %1, align 4
- %3 = getelementptr [32 x i32], [32 x i32]* @xdst, i64 0, i64 %0
+ %3 = getelementptr [131072 x i32], [131072 x i32]* @dst, i64 0, i64 %0
store i32 %2, i32* %3, align 4
ret void
+}
+
+define void @oxf00(i64 %i) nounwind {
; LINUX-64-STATIC-LABEL: oxf00:
; LINUX-64-STATIC: movl xsrc+64(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], xdst+64(,%rdi,4)
@@ -2730,14 +2723,16 @@ entry:
; DARWIN-64-PIC-NEXT: movq _xdst at GOTPCREL(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], 64([[RCX]],%rdi,4)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = add i64 %i, 16
+ %1 = getelementptr [32 x i32], [32 x i32]* @xsrc, i64 0, i64 %0
+ %2 = load i32, i32* %1, align 4
+ %3 = getelementptr [32 x i32], [32 x i32]* @xdst, i64 0, i64 %0
+ store i32 %2, i32* %3, align 4
+ ret void
}
define void @off01(i64 %i) nounwind {
-entry:
- %.sum = add i64 %i, 16
- %0 = getelementptr [131072 x i32], [131072 x i32]* @dst, i64 0, i64 %.sum
- store i32* %0, i32** @ptr, align 8
- ret void
; LINUX-64-STATIC-LABEL: off01:
; LINUX-64-STATIC: leaq dst+64(,%rdi,4), [[RAX:%r.x]]
; LINUX-64-STATIC: movq [[RAX]], ptr
@@ -2807,14 +2802,14 @@ entry:
; DARWIN-64-PIC-NEXT: movq _ptr at GOTPCREL(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movq [[RAX]], ([[RCX]])
; DARWIN-64-PIC-NEXT: ret
-}
-
-define void @oxf01(i64 %i) nounwind {
entry:
%.sum = add i64 %i, 16
- %0 = getelementptr [32 x i32], [32 x i32]* @xdst, i64 0, i64 %.sum
+ %0 = getelementptr [131072 x i32], [131072 x i32]* @dst, i64 0, i64 %.sum
store i32* %0, i32** @ptr, align 8
ret void
+}
+
+define void @oxf01(i64 %i) nounwind {
; LINUX-64-STATIC-LABEL: oxf01:
; LINUX-64-STATIC: leaq xdst+64(,%rdi,4), [[RAX:%r.x]]
; LINUX-64-STATIC: movq [[RAX]], ptr
@@ -2884,17 +2879,14 @@ entry:
; DARWIN-64-PIC-NEXT: movq _ptr at GOTPCREL(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movq [[RAX]], ([[RCX]])
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %.sum = add i64 %i, 16
+ %0 = getelementptr [32 x i32], [32 x i32]* @xdst, i64 0, i64 %.sum
+ store i32* %0, i32** @ptr, align 8
+ ret void
}
define void @off02(i64 %i) nounwind {
-entry:
- %0 = load i32*, i32** @ptr, align 8
- %1 = add i64 %i, 16
- %2 = getelementptr [131072 x i32], [131072 x i32]* @src, i64 0, i64 %1
- %3 = load i32, i32* %2, align 4
- %4 = getelementptr i32, i32* %0, i64 %1
- store i32 %3, i32* %4, align 4
- ret void
; LINUX-64-STATIC-LABEL: off02:
; LINUX-64-STATIC: movl src+64(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movq ptr(%rip), [[RCX:%r.x]]
@@ -2974,17 +2966,17 @@ entry:
; DARWIN-64-PIC-NEXT: movq ([[RCX]]), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], 64([[RCX]],%rdi,4)
; DARWIN-64-PIC-NEXT: ret
-}
-
-define void @oxf02(i64 %i) nounwind {
entry:
%0 = load i32*, i32** @ptr, align 8
%1 = add i64 %i, 16
- %2 = getelementptr [32 x i32], [32 x i32]* @xsrc, i64 0, i64 %1
+ %2 = getelementptr [131072 x i32], [131072 x i32]* @src, i64 0, i64 %1
%3 = load i32, i32* %2, align 4
%4 = getelementptr i32, i32* %0, i64 %1
store i32 %3, i32* %4, align 4
ret void
+}
+
+define void @oxf02(i64 %i) nounwind {
; LINUX-64-STATIC-LABEL: oxf02:
; LINUX-64-STATIC: movl xsrc+64(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movq ptr(%rip), [[RCX:%r.x]]
@@ -3064,16 +3056,17 @@ entry:
; DARWIN-64-PIC-NEXT: movq ([[RCX]]), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], 64([[RCX]],%rdi,4)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32*, i32** @ptr, align 8
+ %1 = add i64 %i, 16
+ %2 = getelementptr [32 x i32], [32 x i32]* @xsrc, i64 0, i64 %1
+ %3 = load i32, i32* %2, align 4
+ %4 = getelementptr i32, i32* %0, i64 %1
+ store i32 %3, i32* %4, align 4
+ ret void
}
define void @off03(i64 %i) nounwind {
-entry:
- %0 = add i64 %i, 16
- %1 = getelementptr [131072 x i32], [131072 x i32]* @dsrc, i64 0, i64 %0
- %2 = load i32, i32* %1, align 4
- %3 = getelementptr [131072 x i32], [131072 x i32]* @ddst, i64 0, i64 %0
- store i32 %2, i32* %3, align 4
- ret void
; LINUX-64-STATIC-LABEL: off03:
; LINUX-64-STATIC: movl dsrc+64(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], ddst+64(,%rdi,4)
@@ -3139,14 +3132,16 @@ entry:
; DARWIN-64-PIC-NEXT: leaq _ddst(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], 64([[RCX]],%rdi,4)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = add i64 %i, 16
+ %1 = getelementptr [131072 x i32], [131072 x i32]* @dsrc, i64 0, i64 %0
+ %2 = load i32, i32* %1, align 4
+ %3 = getelementptr [131072 x i32], [131072 x i32]* @ddst, i64 0, i64 %0
+ store i32 %2, i32* %3, align 4
+ ret void
}
define void @off04(i64 %i) nounwind {
-entry:
- %.sum = add i64 %i, 16
- %0 = getelementptr [131072 x i32], [131072 x i32]* @ddst, i64 0, i64 %.sum
- store i32* %0, i32** @dptr, align 8
- ret void
; LINUX-64-STATIC-LABEL: off04:
; LINUX-64-STATIC: leaq ddst+64(,%rdi,4), [[RAX:%r.x]]
; LINUX-64-STATIC: movq [[RAX]], dptr
@@ -3209,17 +3204,14 @@ entry:
; DARWIN-64-PIC-NEXT: leaq 64([[RAX]],%rdi,4), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: movq [[RAX]], _dptr(%rip)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %.sum = add i64 %i, 16
+ %0 = getelementptr [131072 x i32], [131072 x i32]* @ddst, i64 0, i64 %.sum
+ store i32* %0, i32** @dptr, align 8
+ ret void
}
define void @off05(i64 %i) nounwind {
-entry:
- %0 = load i32*, i32** @dptr, align 8
- %1 = add i64 %i, 16
- %2 = getelementptr [131072 x i32], [131072 x i32]* @dsrc, i64 0, i64 %1
- %3 = load i32, i32* %2, align 4
- %4 = getelementptr i32, i32* %0, i64 %1
- store i32 %3, i32* %4, align 4
- ret void
; LINUX-64-STATIC-LABEL: off05:
; LINUX-64-STATIC: movl dsrc+64(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movq dptr(%rip), [[RCX:%r.x]]
@@ -3292,16 +3284,17 @@ entry:
; DARWIN-64-PIC-NEXT: movq _dptr(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], 64([[RCX]],%rdi,4)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32*, i32** @dptr, align 8
+ %1 = add i64 %i, 16
+ %2 = getelementptr [131072 x i32], [131072 x i32]* @dsrc, i64 0, i64 %1
+ %3 = load i32, i32* %2, align 4
+ %4 = getelementptr i32, i32* %0, i64 %1
+ store i32 %3, i32* %4, align 4
+ ret void
}
define void @off06(i64 %i) nounwind {
-entry:
- %0 = add i64 %i, 16
- %1 = getelementptr [131072 x i32], [131072 x i32]* @lsrc, i64 0, i64 %0
- %2 = load i32, i32* %1, align 4
- %3 = getelementptr [131072 x i32], [131072 x i32]* @ldst, i64 0, i64 %0
- store i32 %2, i32* %3, align 4
- ret void
; LINUX-64-STATIC-LABEL: off06:
; LINUX-64-STATIC: movl lsrc+64(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], ldst+64(,%rdi,4)
@@ -3367,14 +3360,16 @@ entry:
; DARWIN-64-PIC-NEXT: leaq _ldst(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], 64([[RCX]],%rdi,4)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = add i64 %i, 16
+ %1 = getelementptr [131072 x i32], [131072 x i32]* @lsrc, i64 0, i64 %0
+ %2 = load i32, i32* %1, align 4
+ %3 = getelementptr [131072 x i32], [131072 x i32]* @ldst, i64 0, i64 %0
+ store i32 %2, i32* %3, align 4
+ ret void
}
define void @off07(i64 %i) nounwind {
-entry:
- %.sum = add i64 %i, 16
- %0 = getelementptr [131072 x i32], [131072 x i32]* @ldst, i64 0, i64 %.sum
- store i32* %0, i32** @lptr, align 8
- ret void
; LINUX-64-STATIC-LABEL: off07:
; LINUX-64-STATIC: leaq ldst+64(,%rdi,4), [[RAX:%r.x]]
; LINUX-64-STATIC: movq [[RAX]], lptr
@@ -3436,17 +3431,14 @@ entry:
; DARWIN-64-PIC-NEXT: leaq 64([[RAX]],%rdi,4), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: movq [[RAX]], _lptr(%rip)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %.sum = add i64 %i, 16
+ %0 = getelementptr [131072 x i32], [131072 x i32]* @ldst, i64 0, i64 %.sum
+ store i32* %0, i32** @lptr, align 8
+ ret void
}
define void @off08(i64 %i) nounwind {
-entry:
- %0 = load i32*, i32** @lptr, align 8
- %1 = add i64 %i, 16
- %2 = getelementptr [131072 x i32], [131072 x i32]* @lsrc, i64 0, i64 %1
- %3 = load i32, i32* %2, align 4
- %4 = getelementptr i32, i32* %0, i64 %1
- store i32 %3, i32* %4, align 4
- ret void
; LINUX-64-STATIC-LABEL: off08:
; LINUX-64-STATIC: movl lsrc+64(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movq lptr(%rip), [[RCX:%r.x]]
@@ -3518,13 +3510,17 @@ entry:
; DARWIN-64-PIC-NEXT: movq _lptr(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], 64([[RCX]],%rdi,4)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32*, i32** @lptr, align 8
+ %1 = add i64 %i, 16
+ %2 = getelementptr [131072 x i32], [131072 x i32]* @lsrc, i64 0, i64 %1
+ %3 = load i32, i32* %2, align 4
+ %4 = getelementptr i32, i32* %0, i64 %1
+ store i32 %3, i32* %4, align 4
+ ret void
}
define void @moo00(i64 %i) nounwind {
-entry:
- %0 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @src, i32 0, i64 65536), align 4
- store i32 %0, i32* getelementptr ([131072 x i32], [131072 x i32]* @dst, i32 0, i64 65536), align 4
- ret void
; LINUX-64-STATIC-LABEL: moo00:
; LINUX-64-STATIC: movl src+262144(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], dst+262144(%rip)
@@ -3589,12 +3585,13 @@ entry:
; DARWIN-64-PIC-NEXT: movq _dst at GOTPCREL(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], 262144([[RCX]])
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @src, i32 0, i64 65536), align 4
+ store i32 %0, i32* getelementptr ([131072 x i32], [131072 x i32]* @dst, i32 0, i64 65536), align 4
+ ret void
}
define void @moo01(i64 %i) nounwind {
-entry:
- store i32* getelementptr ([131072 x i32], [131072 x i32]* @dst, i32 0, i64 65536), i32** @ptr, align 8
- ret void
; LINUX-64-STATIC-LABEL: moo01:
; LINUX-64-STATIC: movq $dst+262144, ptr(%rip)
; LINUX-64-STATIC: ret
@@ -3655,15 +3652,12 @@ entry:
; DARWIN-64-PIC-NEXT: movq _ptr at GOTPCREL(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movq [[RAX]], ([[RCX]])
; DARWIN-64-PIC-NEXT: ret
+entry:
+ store i32* getelementptr ([131072 x i32], [131072 x i32]* @dst, i32 0, i64 65536), i32** @ptr, align 8
+ ret void
}
define void @moo02(i64 %i) nounwind {
-entry:
- %0 = load i32*, i32** @ptr, align 8
- %1 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @src, i32 0, i64 65536), align 4
- %2 = getelementptr i32, i32* %0, i64 65536
- store i32 %1, i32* %2, align 4
- ret void
; LINUX-64-STATIC-LABEL: moo02:
; LINUX-64-STATIC: movl src+262144(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movq ptr(%rip), [[RCX:%r.x]]
@@ -3738,13 +3732,15 @@ entry:
; DARWIN-64-PIC-NEXT: movq ([[RCX]]), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], 262144([[RCX]])
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32*, i32** @ptr, align 8
+ %1 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @src, i32 0, i64 65536), align 4
+ %2 = getelementptr i32, i32* %0, i64 65536
+ store i32 %1, i32* %2, align 4
+ ret void
}
define void @moo03(i64 %i) nounwind {
-entry:
- %0 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @dsrc, i32 0, i64 65536), align 32
- store i32 %0, i32* getelementptr ([131072 x i32], [131072 x i32]* @ddst, i32 0, i64 65536), align 32
- ret void
; LINUX-64-STATIC-LABEL: moo03:
; LINUX-64-STATIC: movl dsrc+262144(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], ddst+262144(%rip)
@@ -3799,12 +3795,13 @@ entry:
; DARWIN-64-PIC: movl _dsrc+262144(%rip), [[EAX:%e.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], _ddst+262144(%rip)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @dsrc, i32 0, i64 65536), align 32
+ store i32 %0, i32* getelementptr ([131072 x i32], [131072 x i32]* @ddst, i32 0, i64 65536), align 32
+ ret void
}
define void @moo04(i64 %i) nounwind {
-entry:
- store i32* getelementptr ([131072 x i32], [131072 x i32]* @ddst, i32 0, i64 65536), i32** @dptr, align 8
- ret void
; LINUX-64-STATIC-LABEL: moo04:
; LINUX-64-STATIC: movq $ddst+262144, dptr
; LINUX-64-STATIC: ret
@@ -3854,15 +3851,12 @@ entry:
; DARWIN-64-PIC: leaq _ddst+262144(%rip), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: movq [[RAX]], _dptr(%rip)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ store i32* getelementptr ([131072 x i32], [131072 x i32]* @ddst, i32 0, i64 65536), i32** @dptr, align 8
+ ret void
}
define void @moo05(i64 %i) nounwind {
-entry:
- %0 = load i32*, i32** @dptr, align 8
- %1 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @dsrc, i32 0, i64 65536), align 32
- %2 = getelementptr i32, i32* %0, i64 65536
- store i32 %1, i32* %2, align 4
- ret void
; LINUX-64-STATIC-LABEL: moo05:
; LINUX-64-STATIC: movl dsrc+262144(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movq dptr(%rip), [[RCX:%r.x]]
@@ -3927,13 +3921,15 @@ entry:
; DARWIN-64-PIC-NEXT: movq _dptr(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], 262144([[RCX]])
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32*, i32** @dptr, align 8
+ %1 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @dsrc, i32 0, i64 65536), align 32
+ %2 = getelementptr i32, i32* %0, i64 65536
+ store i32 %1, i32* %2, align 4
+ ret void
}
define void @moo06(i64 %i) nounwind {
-entry:
- %0 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @lsrc, i32 0, i64 65536), align 4
- store i32 %0, i32* getelementptr ([131072 x i32], [131072 x i32]* @ldst, i32 0, i64 65536), align 4
- ret void
; LINUX-64-STATIC-LABEL: moo06:
; LINUX-64-STATIC: movl lsrc+262144(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], ldst+262144(%rip)
@@ -3986,12 +3982,13 @@ entry:
; DARWIN-64-PIC: movl _lsrc+262144(%rip), [[EAX:%e.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], _ldst+262144(%rip)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @lsrc, i32 0, i64 65536), align 4
+ store i32 %0, i32* getelementptr ([131072 x i32], [131072 x i32]* @ldst, i32 0, i64 65536), align 4
+ ret void
}
define void @moo07(i64 %i) nounwind {
-entry:
- store i32* getelementptr ([131072 x i32], [131072 x i32]* @ldst, i32 0, i64 65536), i32** @lptr, align 8
- ret void
; LINUX-64-STATIC-LABEL: moo07:
; LINUX-64-STATIC: movq $ldst+262144, lptr
; LINUX-64-STATIC: ret
@@ -4039,15 +4036,12 @@ entry:
; DARWIN-64-PIC: leaq _ldst+262144(%rip), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: movq [[RAX]], _lptr(%rip)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ store i32* getelementptr ([131072 x i32], [131072 x i32]* @ldst, i32 0, i64 65536), i32** @lptr, align 8
+ ret void
}
define void @moo08(i64 %i) nounwind {
-entry:
- %0 = load i32*, i32** @lptr, align 8
- %1 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @lsrc, i32 0, i64 65536), align 4
- %2 = getelementptr i32, i32* %0, i64 65536
- store i32 %1, i32* %2, align 4
- ret void
; LINUX-64-STATIC-LABEL: moo08:
; LINUX-64-STATIC: movl lsrc+262144(%rip), [[EAX:%e.x]]
; LINUX-64-STATIC: movq lptr(%rip), [[RCX:%r.x]]
@@ -4110,16 +4104,15 @@ entry:
; DARWIN-64-PIC-NEXT: movq _lptr(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], 262144([[RCX]])
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32*, i32** @lptr, align 8
+ %1 = load i32, i32* getelementptr ([131072 x i32], [131072 x i32]* @lsrc, i32 0, i64 65536), align 4
+ %2 = getelementptr i32, i32* %0, i64 65536
+ store i32 %1, i32* %2, align 4
+ ret void
}
define void @big00(i64 %i) nounwind {
-entry:
- %0 = add i64 %i, 65536
- %1 = getelementptr [131072 x i32], [131072 x i32]* @src, i64 0, i64 %0
- %2 = load i32, i32* %1, align 4
- %3 = getelementptr [131072 x i32], [131072 x i32]* @dst, i64 0, i64 %0
- store i32 %2, i32* %3, align 4
- ret void
; LINUX-64-STATIC-LABEL: big00:
; LINUX-64-STATIC: movl src+262144(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], dst+262144(,%rdi,4)
@@ -4189,14 +4182,16 @@ entry:
; DARWIN-64-PIC-NEXT: movq _dst at GOTPCREL(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], 262144([[RCX]],%rdi,4)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = add i64 %i, 65536
+ %1 = getelementptr [131072 x i32], [131072 x i32]* @src, i64 0, i64 %0
+ %2 = load i32, i32* %1, align 4
+ %3 = getelementptr [131072 x i32], [131072 x i32]* @dst, i64 0, i64 %0
+ store i32 %2, i32* %3, align 4
+ ret void
}
define void @big01(i64 %i) nounwind {
-entry:
- %.sum = add i64 %i, 65536
- %0 = getelementptr [131072 x i32], [131072 x i32]* @dst, i64 0, i64 %.sum
- store i32* %0, i32** @ptr, align 8
- ret void
; LINUX-64-STATIC-LABEL: big01:
; LINUX-64-STATIC: leaq dst+262144(,%rdi,4), [[RAX:%r.x]]
; LINUX-64-STATIC: movq [[RAX]], ptr(%rip)
@@ -4266,17 +4261,14 @@ entry:
; DARWIN-64-PIC-NEXT: movq _ptr at GOTPCREL(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movq [[RAX]], ([[RCX]])
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %.sum = add i64 %i, 65536
+ %0 = getelementptr [131072 x i32], [131072 x i32]* @dst, i64 0, i64 %.sum
+ store i32* %0, i32** @ptr, align 8
+ ret void
}
define void @big02(i64 %i) nounwind {
-entry:
- %0 = load i32*, i32** @ptr, align 8
- %1 = add i64 %i, 65536
- %2 = getelementptr [131072 x i32], [131072 x i32]* @src, i64 0, i64 %1
- %3 = load i32, i32* %2, align 4
- %4 = getelementptr i32, i32* %0, i64 %1
- store i32 %3, i32* %4, align 4
- ret void
; LINUX-64-STATIC-LABEL: big02:
; LINUX-64-STATIC: movl src+262144(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movq ptr(%rip), [[RCX:%r.x]]
@@ -4356,16 +4348,17 @@ entry:
; DARWIN-64-PIC-NEXT: movq ([[RCX]]), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], 262144([[RCX]],%rdi,4)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32*, i32** @ptr, align 8
+ %1 = add i64 %i, 65536
+ %2 = getelementptr [131072 x i32], [131072 x i32]* @src, i64 0, i64 %1
+ %3 = load i32, i32* %2, align 4
+ %4 = getelementptr i32, i32* %0, i64 %1
+ store i32 %3, i32* %4, align 4
+ ret void
}
define void @big03(i64 %i) nounwind {
-entry:
- %0 = add i64 %i, 65536
- %1 = getelementptr [131072 x i32], [131072 x i32]* @dsrc, i64 0, i64 %0
- %2 = load i32, i32* %1, align 4
- %3 = getelementptr [131072 x i32], [131072 x i32]* @ddst, i64 0, i64 %0
- store i32 %2, i32* %3, align 4
- ret void
; LINUX-64-STATIC-LABEL: big03:
; LINUX-64-STATIC: movl dsrc+262144(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], ddst+262144(,%rdi,4)
@@ -4431,14 +4424,16 @@ entry:
; DARWIN-64-PIC-NEXT: leaq _ddst(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], 262144([[RCX]],%rdi,4)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = add i64 %i, 65536
+ %1 = getelementptr [131072 x i32], [131072 x i32]* @dsrc, i64 0, i64 %0
+ %2 = load i32, i32* %1, align 4
+ %3 = getelementptr [131072 x i32], [131072 x i32]* @ddst, i64 0, i64 %0
+ store i32 %2, i32* %3, align 4
+ ret void
}
define void @big04(i64 %i) nounwind {
-entry:
- %.sum = add i64 %i, 65536
- %0 = getelementptr [131072 x i32], [131072 x i32]* @ddst, i64 0, i64 %.sum
- store i32* %0, i32** @dptr, align 8
- ret void
; LINUX-64-STATIC-LABEL: big04:
; LINUX-64-STATIC: leaq ddst+262144(,%rdi,4), [[RAX:%r.x]]
; LINUX-64-STATIC: movq [[RAX]], dptr
@@ -4501,17 +4496,14 @@ entry:
; DARWIN-64-PIC-NEXT: leaq 262144([[RAX]],%rdi,4), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: movq [[RAX]], _dptr(%rip)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %.sum = add i64 %i, 65536
+ %0 = getelementptr [131072 x i32], [131072 x i32]* @ddst, i64 0, i64 %.sum
+ store i32* %0, i32** @dptr, align 8
+ ret void
}
define void @big05(i64 %i) nounwind {
-entry:
- %0 = load i32*, i32** @dptr, align 8
- %1 = add i64 %i, 65536
- %2 = getelementptr [131072 x i32], [131072 x i32]* @dsrc, i64 0, i64 %1
- %3 = load i32, i32* %2, align 4
- %4 = getelementptr i32, i32* %0, i64 %1
- store i32 %3, i32* %4, align 4
- ret void
; LINUX-64-STATIC-LABEL: big05:
; LINUX-64-STATIC: movl dsrc+262144(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movq dptr(%rip), [[RCX:%r.x]]
@@ -4584,16 +4576,17 @@ entry:
; DARWIN-64-PIC-NEXT: movq _dptr(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], 262144([[RCX]],%rdi,4)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32*, i32** @dptr, align 8
+ %1 = add i64 %i, 65536
+ %2 = getelementptr [131072 x i32], [131072 x i32]* @dsrc, i64 0, i64 %1
+ %3 = load i32, i32* %2, align 4
+ %4 = getelementptr i32, i32* %0, i64 %1
+ store i32 %3, i32* %4, align 4
+ ret void
}
define void @big06(i64 %i) nounwind {
-entry:
- %0 = add i64 %i, 65536
- %1 = getelementptr [131072 x i32], [131072 x i32]* @lsrc, i64 0, i64 %0
- %2 = load i32, i32* %1, align 4
- %3 = getelementptr [131072 x i32], [131072 x i32]* @ldst, i64 0, i64 %0
- store i32 %2, i32* %3, align 4
- ret void
; LINUX-64-STATIC-LABEL: big06:
; LINUX-64-STATIC: movl lsrc+262144(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movl [[EAX]], ldst+262144(,%rdi,4)
@@ -4659,14 +4652,16 @@ entry:
; DARWIN-64-PIC-NEXT: leaq _ldst(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], 262144([[RCX]],%rdi,4)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = add i64 %i, 65536
+ %1 = getelementptr [131072 x i32], [131072 x i32]* @lsrc, i64 0, i64 %0
+ %2 = load i32, i32* %1, align 4
+ %3 = getelementptr [131072 x i32], [131072 x i32]* @ldst, i64 0, i64 %0
+ store i32 %2, i32* %3, align 4
+ ret void
}
define void @big07(i64 %i) nounwind {
-entry:
- %.sum = add i64 %i, 65536
- %0 = getelementptr [131072 x i32], [131072 x i32]* @ldst, i64 0, i64 %.sum
- store i32* %0, i32** @lptr, align 8
- ret void
; LINUX-64-STATIC-LABEL: big07:
; LINUX-64-STATIC: leaq ldst+262144(,%rdi,4), [[RAX:%r.x]]
; LINUX-64-STATIC: movq [[RAX]], lptr
@@ -4728,17 +4723,14 @@ entry:
; DARWIN-64-PIC-NEXT: leaq 262144([[RAX]],%rdi,4), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: movq [[RAX]], _lptr(%rip)
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %.sum = add i64 %i, 65536
+ %0 = getelementptr [131072 x i32], [131072 x i32]* @ldst, i64 0, i64 %.sum
+ store i32* %0, i32** @lptr, align 8
+ ret void
}
define void @big08(i64 %i) nounwind {
-entry:
- %0 = load i32*, i32** @lptr, align 8
- %1 = add i64 %i, 65536
- %2 = getelementptr [131072 x i32], [131072 x i32]* @lsrc, i64 0, i64 %1
- %3 = load i32, i32* %2, align 4
- %4 = getelementptr i32, i32* %0, i64 %1
- store i32 %3, i32* %4, align 4
- ret void
; LINUX-64-STATIC-LABEL: big08:
; LINUX-64-STATIC: movl lsrc+262144(,%rdi,4), [[EAX:%e.x]]
; LINUX-64-STATIC: movq lptr(%rip), [[RCX:%r.x]]
@@ -4810,11 +4802,18 @@ entry:
; DARWIN-64-PIC-NEXT: movq _lptr(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: movl [[EAX]], 262144([[RCX]],%rdi,4)
; DARWIN-64-PIC-NEXT: ret
+
+entry:
+ %0 = load i32*, i32** @lptr, align 8
+ %1 = add i64 %i, 65536
+ %2 = getelementptr [131072 x i32], [131072 x i32]* @lsrc, i64 0, i64 %1
+ %3 = load i32, i32* %2, align 4
+ %4 = getelementptr i32, i32* %0, i64 %1
+ store i32 %3, i32* %4, align 4
+ ret void
}
define i8* @bar00() nounwind {
-entry:
- ret i8* bitcast ([131072 x i32]* @src to i8*)
; LINUX-64-STATIC-LABEL: bar00:
; LINUX-64-STATIC: movl $src, %eax
; LINUX-64-STATIC: ret
@@ -4857,11 +4856,12 @@ entry:
; DARWIN-64-PIC: _bar00:
; DARWIN-64-PIC: movq _src at GOTPCREL(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+
+entry:
+ ret i8* bitcast ([131072 x i32]* @src to i8*)
}
define i8* @bxr00() nounwind {
-entry:
- ret i8* bitcast ([32 x i32]* @xsrc to i8*)
; LINUX-64-STATIC-LABEL: bxr00:
; LINUX-64-STATIC: movl $xsrc, %eax
; LINUX-64-STATIC: ret
@@ -4904,11 +4904,12 @@ entry:
; DARWIN-64-PIC: _bxr00:
; DARWIN-64-PIC: movq _xsrc at GOTPCREL(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+
+entry:
+ ret i8* bitcast ([32 x i32]* @xsrc to i8*)
}
define i8* @bar01() nounwind {
-entry:
- ret i8* bitcast ([131072 x i32]* @dst to i8*)
; LINUX-64-STATIC-LABEL: bar01:
; LINUX-64-STATIC: movl $dst, %eax
; LINUX-64-STATIC: ret
@@ -4951,11 +4952,12 @@ entry:
; DARWIN-64-PIC: _bar01:
; DARWIN-64-PIC: movq _dst at GOTPCREL(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+
+entry:
+ ret i8* bitcast ([131072 x i32]* @dst to i8*)
}
define i8* @bxr01() nounwind {
-entry:
- ret i8* bitcast ([32 x i32]* @xdst to i8*)
; LINUX-64-STATIC-LABEL: bxr01:
; LINUX-64-STATIC: movl $xdst, %eax
; LINUX-64-STATIC: ret
@@ -4998,11 +5000,12 @@ entry:
; DARWIN-64-PIC: _bxr01:
; DARWIN-64-PIC: movq _xdst at GOTPCREL(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+
+entry:
+ ret i8* bitcast ([32 x i32]* @xdst to i8*)
}
define i8* @bar02() nounwind {
-entry:
- ret i8* bitcast (i32** @ptr to i8*)
; LINUX-64-STATIC-LABEL: bar02:
; LINUX-64-STATIC: movl $ptr, %eax
; LINUX-64-STATIC: ret
@@ -5045,11 +5048,11 @@ entry:
; DARWIN-64-PIC: _bar02:
; DARWIN-64-PIC: movq _ptr at GOTPCREL(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast (i32** @ptr to i8*)
}
define i8* @bar03() nounwind {
-entry:
- ret i8* bitcast ([131072 x i32]* @dsrc to i8*)
; LINUX-64-STATIC-LABEL: bar03:
; LINUX-64-STATIC: movl $dsrc, %eax
; LINUX-64-STATIC: ret
@@ -5092,11 +5095,11 @@ entry:
; DARWIN-64-PIC: _bar03:
; DARWIN-64-PIC: leaq _dsrc(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast ([131072 x i32]* @dsrc to i8*)
}
define i8* @bar04() nounwind {
-entry:
- ret i8* bitcast ([131072 x i32]* @ddst to i8*)
; LINUX-64-STATIC-LABEL: bar04:
; LINUX-64-STATIC: movl $ddst, %eax
; LINUX-64-STATIC: ret
@@ -5139,11 +5142,11 @@ entry:
; DARWIN-64-PIC: _bar04:
; DARWIN-64-PIC: leaq _ddst(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast ([131072 x i32]* @ddst to i8*)
}
define i8* @bar05() nounwind {
-entry:
- ret i8* bitcast (i32** @dptr to i8*)
; LINUX-64-STATIC-LABEL: bar05:
; LINUX-64-STATIC: movl $dptr, %eax
; LINUX-64-STATIC: ret
@@ -5186,11 +5189,11 @@ entry:
; DARWIN-64-PIC: _bar05:
; DARWIN-64-PIC: leaq _dptr(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast (i32** @dptr to i8*)
}
define i8* @bar06() nounwind {
-entry:
- ret i8* bitcast ([131072 x i32]* @lsrc to i8*)
; LINUX-64-STATIC-LABEL: bar06:
; LINUX-64-STATIC: movl $lsrc, %eax
; LINUX-64-STATIC: ret
@@ -5233,11 +5236,11 @@ entry:
; DARWIN-64-PIC: _bar06:
; DARWIN-64-PIC: leaq _lsrc(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast ([131072 x i32]* @lsrc to i8*)
}
define i8* @bar07() nounwind {
-entry:
- ret i8* bitcast ([131072 x i32]* @ldst to i8*)
; LINUX-64-STATIC-LABEL: bar07:
; LINUX-64-STATIC: movl $ldst, %eax
; LINUX-64-STATIC: ret
@@ -5280,11 +5283,11 @@ entry:
; DARWIN-64-PIC: _bar07:
; DARWIN-64-PIC: leaq _ldst(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast ([131072 x i32]* @ldst to i8*)
}
define i8* @bar08() nounwind {
-entry:
- ret i8* bitcast (i32** @lptr to i8*)
; LINUX-64-STATIC-LABEL: bar08:
; LINUX-64-STATIC: movl $lptr, %eax
; LINUX-64-STATIC: ret
@@ -5327,11 +5330,11 @@ entry:
; DARWIN-64-PIC: _bar08:
; DARWIN-64-PIC: leaq _lptr(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast (i32** @lptr to i8*)
}
define i8* @har00() nounwind {
-entry:
- ret i8* bitcast ([131072 x i32]* @src to i8*)
; LINUX-64-STATIC-LABEL: har00:
; LINUX-64-STATIC: movl $src, %eax
; LINUX-64-STATIC: ret
@@ -5374,11 +5377,11 @@ entry:
; DARWIN-64-PIC: _har00:
; DARWIN-64-PIC: movq _src at GOTPCREL(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast ([131072 x i32]* @src to i8*)
}
define i8* @hxr00() nounwind {
-entry:
- ret i8* bitcast ([32 x i32]* @xsrc to i8*)
; LINUX-64-STATIC-LABEL: hxr00:
; LINUX-64-STATIC: movl $xsrc, %eax
; LINUX-64-STATIC: ret
@@ -5421,11 +5424,11 @@ entry:
; DARWIN-64-PIC: _hxr00:
; DARWIN-64-PIC: movq _xsrc at GOTPCREL(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast ([32 x i32]* @xsrc to i8*)
}
define i8* @har01() nounwind {
-entry:
- ret i8* bitcast ([131072 x i32]* @dst to i8*)
; LINUX-64-STATIC-LABEL: har01:
; LINUX-64-STATIC: movl $dst, %eax
; LINUX-64-STATIC: ret
@@ -5468,11 +5471,11 @@ entry:
; DARWIN-64-PIC: _har01:
; DARWIN-64-PIC: movq _dst at GOTPCREL(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast ([131072 x i32]* @dst to i8*)
}
define i8* @hxr01() nounwind {
-entry:
- ret i8* bitcast ([32 x i32]* @xdst to i8*)
; LINUX-64-STATIC-LABEL: hxr01:
; LINUX-64-STATIC: movl $xdst, %eax
; LINUX-64-STATIC: ret
@@ -5515,13 +5518,11 @@ entry:
; DARWIN-64-PIC: _hxr01:
; DARWIN-64-PIC: movq _xdst at GOTPCREL(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast ([32 x i32]* @xdst to i8*)
}
define i8* @har02() nounwind {
-entry:
- %0 = load i32*, i32** @ptr, align 8
- %1 = bitcast i32* %0 to i8*
- ret i8* %1
; LINUX-64-STATIC-LABEL: har02:
; LINUX-64-STATIC: movq ptr(%rip), %rax
; LINUX-64-STATIC: ret
@@ -5570,11 +5571,13 @@ entry:
; DARWIN-64-PIC: movq _ptr at GOTPCREL(%rip), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: movq ([[RAX]]), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32*, i32** @ptr, align 8
+ %1 = bitcast i32* %0 to i8*
+ ret i8* %1
}
define i8* @har03() nounwind {
-entry:
- ret i8* bitcast ([131072 x i32]* @dsrc to i8*)
; LINUX-64-STATIC-LABEL: har03:
; LINUX-64-STATIC: movl $dsrc, %eax
; LINUX-64-STATIC: ret
@@ -5617,11 +5620,11 @@ entry:
; DARWIN-64-PIC: _har03:
; DARWIN-64-PIC: leaq _dsrc(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast ([131072 x i32]* @dsrc to i8*)
}
define i8* @har04() nounwind {
-entry:
- ret i8* bitcast ([131072 x i32]* @ddst to i8*)
; LINUX-64-STATIC-LABEL: har04:
; LINUX-64-STATIC: movl $ddst, %eax
; LINUX-64-STATIC: ret
@@ -5664,13 +5667,11 @@ entry:
; DARWIN-64-PIC: _har04:
; DARWIN-64-PIC: leaq _ddst(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast ([131072 x i32]* @ddst to i8*)
}
define i8* @har05() nounwind {
-entry:
- %0 = load i32*, i32** @dptr, align 8
- %1 = bitcast i32* %0 to i8*
- ret i8* %1
; LINUX-64-STATIC-LABEL: har05:
; LINUX-64-STATIC: movq dptr(%rip), %rax
; LINUX-64-STATIC: ret
@@ -5714,11 +5715,13 @@ entry:
; DARWIN-64-PIC: _har05:
; DARWIN-64-PIC: movq _dptr(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32*, i32** @dptr, align 8
+ %1 = bitcast i32* %0 to i8*
+ ret i8* %1
}
define i8* @har06() nounwind {
-entry:
- ret i8* bitcast ([131072 x i32]* @lsrc to i8*)
; LINUX-64-STATIC-LABEL: har06:
; LINUX-64-STATIC: movl $lsrc, %eax
; LINUX-64-STATIC: ret
@@ -5761,11 +5764,11 @@ entry:
; DARWIN-64-PIC: _har06:
; DARWIN-64-PIC: leaq _lsrc(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast ([131072 x i32]* @lsrc to i8*)
}
define i8* @har07() nounwind {
-entry:
- ret i8* bitcast ([131072 x i32]* @ldst to i8*)
; LINUX-64-STATIC-LABEL: har07:
; LINUX-64-STATIC: movl $ldst, %eax
; LINUX-64-STATIC: ret
@@ -5808,13 +5811,11 @@ entry:
; DARWIN-64-PIC: _har07:
; DARWIN-64-PIC: leaq _ldst(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast ([131072 x i32]* @ldst to i8*)
}
define i8* @har08() nounwind {
-entry:
- %0 = load i32*, i32** @lptr, align 8
- %1 = bitcast i32* %0 to i8*
- ret i8* %1
; LINUX-64-STATIC-LABEL: har08:
; LINUX-64-STATIC: movq lptr(%rip), %rax
; LINUX-64-STATIC: ret
@@ -5857,11 +5858,13 @@ entry:
; DARWIN-64-PIC: _har08:
; DARWIN-64-PIC: movq _lptr(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32*, i32** @lptr, align 8
+ %1 = bitcast i32* %0 to i8*
+ ret i8* %1
}
define i8* @bat00() nounwind {
-entry:
- ret i8* bitcast (i32* getelementptr ([131072 x i32], [131072 x i32]* @src, i32 0, i64 16) to i8*)
; LINUX-64-STATIC-LABEL: bat00:
; LINUX-64-STATIC: movl $src+64, %eax
; LINUX-64-STATIC: ret
@@ -5910,11 +5913,11 @@ entry:
; DARWIN-64-PIC: movq _src at GOTPCREL(%rip), %rax
; DARWIN-64-PIC-NEXT: addq $64, %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast (i32* getelementptr ([131072 x i32], [131072 x i32]* @src, i32 0, i64 16) to i8*)
}
define i8* @bxt00() nounwind {
-entry:
- ret i8* bitcast (i32* getelementptr ([32 x i32], [32 x i32]* @xsrc, i32 0, i64 16) to i8*)
; LINUX-64-STATIC-LABEL: bxt00:
; LINUX-64-STATIC: movl $xsrc+64, %eax
; LINUX-64-STATIC: ret
@@ -5963,11 +5966,11 @@ entry:
; DARWIN-64-PIC: movq _xsrc at GOTPCREL(%rip), %rax
; DARWIN-64-PIC-NEXT: addq $64, %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast (i32* getelementptr ([32 x i32], [32 x i32]* @xsrc, i32 0, i64 16) to i8*)
}
define i8* @bat01() nounwind {
-entry:
- ret i8* bitcast (i32* getelementptr ([131072 x i32], [131072 x i32]* @dst, i32 0, i64 16) to i8*)
; LINUX-64-STATIC-LABEL: bat01:
; LINUX-64-STATIC: movl $dst+64, %eax
; LINUX-64-STATIC: ret
@@ -6016,11 +6019,11 @@ entry:
; DARWIN-64-PIC: movq _dst at GOTPCREL(%rip), %rax
; DARWIN-64-PIC-NEXT: addq $64, %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast (i32* getelementptr ([131072 x i32], [131072 x i32]* @dst, i32 0, i64 16) to i8*)
}
define i8* @bxt01() nounwind {
-entry:
- ret i8* bitcast (i32* getelementptr ([32 x i32], [32 x i32]* @xdst, i32 0, i64 16) to i8*)
; LINUX-64-STATIC-LABEL: bxt01:
; LINUX-64-STATIC: movl $xdst+64, %eax
; LINUX-64-STATIC: ret
@@ -6069,14 +6072,11 @@ entry:
; DARWIN-64-PIC: movq _xdst at GOTPCREL(%rip), %rax
; DARWIN-64-PIC-NEXT: addq $64, %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast (i32* getelementptr ([32 x i32], [32 x i32]* @xdst, i32 0, i64 16) to i8*)
}
define i8* @bat02() nounwind {
-entry:
- %0 = load i32*, i32** @ptr, align 8
- %1 = getelementptr i32, i32* %0, i64 16
- %2 = bitcast i32* %1 to i8*
- ret i8* %2
; LINUX-64-STATIC-LABEL: bat02:
; LINUX-64-STATIC: movq ptr(%rip), %rax
; LINUX-64-STATIC: addq $64, %rax
@@ -6135,11 +6135,14 @@ entry:
; DARWIN-64-PIC-NEXT: movq ([[RAX]]), %rax
; DARWIN-64-PIC-NEXT: addq $64, %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32*, i32** @ptr, align 8
+ %1 = getelementptr i32, i32* %0, i64 16
+ %2 = bitcast i32* %1 to i8*
+ ret i8* %2
}
define i8* @bat03() nounwind {
-entry:
- ret i8* bitcast (i32* getelementptr ([131072 x i32], [131072 x i32]* @dsrc, i32 0, i64 16) to i8*)
; LINUX-64-STATIC-LABEL: bat03:
; LINUX-64-STATIC: movl $dsrc+64, %eax
; LINUX-64-STATIC: ret
@@ -6183,11 +6186,11 @@ entry:
; DARWIN-64-PIC: _bat03:
; DARWIN-64-PIC: leaq _dsrc+64(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast (i32* getelementptr ([131072 x i32], [131072 x i32]* @dsrc, i32 0, i64 16) to i8*)
}
define i8* @bat04() nounwind {
-entry:
- ret i8* bitcast (i32* getelementptr ([131072 x i32], [131072 x i32]* @ddst, i32 0, i64 16) to i8*)
; LINUX-64-STATIC-LABEL: bat04:
; LINUX-64-STATIC: movl $ddst+64, %eax
; LINUX-64-STATIC: ret
@@ -6231,14 +6234,11 @@ entry:
; DARWIN-64-PIC: _bat04:
; DARWIN-64-PIC: leaq _ddst+64(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast (i32* getelementptr ([131072 x i32], [131072 x i32]* @ddst, i32 0, i64 16) to i8*)
}
define i8* @bat05() nounwind {
-entry:
- %0 = load i32*, i32** @dptr, align 8
- %1 = getelementptr i32, i32* %0, i64 16
- %2 = bitcast i32* %1 to i8*
- ret i8* %2
; LINUX-64-STATIC-LABEL: bat05:
; LINUX-64-STATIC: movq dptr(%rip), %rax
; LINUX-64-STATIC: addq $64, %rax
@@ -6292,11 +6292,14 @@ entry:
; DARWIN-64-PIC: movq _dptr(%rip), %rax
; DARWIN-64-PIC-NEXT: addq $64, %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32*, i32** @dptr, align 8
+ %1 = getelementptr i32, i32* %0, i64 16
+ %2 = bitcast i32* %1 to i8*
+ ret i8* %2
}
define i8* @bat06() nounwind {
-entry:
- ret i8* bitcast (i32* getelementptr ([131072 x i32], [131072 x i32]* @lsrc, i32 0, i64 16) to i8*)
; LINUX-64-STATIC-LABEL: bat06:
; LINUX-64-STATIC: movl $lsrc+64, %eax
; LINUX-64-STATIC: ret
@@ -6339,11 +6342,11 @@ entry:
; DARWIN-64-PIC: _bat06:
; DARWIN-64-PIC: leaq _lsrc+64(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast (i32* getelementptr ([131072 x i32], [131072 x i32]* @lsrc, i32 0, i64 16) to i8*)
}
define i8* @bat07() nounwind {
-entry:
- ret i8* bitcast (i32* getelementptr ([131072 x i32], [131072 x i32]* @ldst, i32 0, i64 16) to i8*)
; LINUX-64-STATIC-LABEL: bat07:
; LINUX-64-STATIC: movl $ldst+64, %eax
; LINUX-64-STATIC: ret
@@ -6386,14 +6389,11 @@ entry:
; DARWIN-64-PIC: _bat07:
; DARWIN-64-PIC: leaq _ldst+64(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast (i32* getelementptr ([131072 x i32], [131072 x i32]* @ldst, i32 0, i64 16) to i8*)
}
define i8* @bat08() nounwind {
-entry:
- %0 = load i32*, i32** @lptr, align 8
- %1 = getelementptr i32, i32* %0, i64 16
- %2 = bitcast i32* %1 to i8*
- ret i8* %2
; LINUX-64-STATIC-LABEL: bat08:
; LINUX-64-STATIC: movq lptr(%rip), %rax
; LINUX-64-STATIC: addq $64, %rax
@@ -6446,11 +6446,14 @@ entry:
; DARWIN-64-PIC: movq _lptr(%rip), %rax
; DARWIN-64-PIC-NEXT: addq $64, %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32*, i32** @lptr, align 8
+ %1 = getelementptr i32, i32* %0, i64 16
+ %2 = bitcast i32* %1 to i8*
+ ret i8* %2
}
define i8* @bam00() nounwind {
-entry:
- ret i8* bitcast (i32* getelementptr ([131072 x i32], [131072 x i32]* @src, i32 0, i64 65536) to i8*)
; LINUX-64-STATIC-LABEL: bam00:
; LINUX-64-STATIC: movl $src+262144, %eax
; LINUX-64-STATIC: ret
@@ -6499,11 +6502,11 @@ entry:
; DARWIN-64-PIC: movl $262144, %eax
; DARWIN-64-PIC-NEXT: addq _src at GOTPCREL(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast (i32* getelementptr ([131072 x i32], [131072 x i32]* @src, i32 0, i64 65536) to i8*)
}
define i8* @bam01() nounwind {
-entry:
- ret i8* bitcast (i32* getelementptr ([131072 x i32], [131072 x i32]* @dst, i32 0, i64 65536) to i8*)
; LINUX-64-STATIC-LABEL: bam01:
; LINUX-64-STATIC: movl $dst+262144, %eax
; LINUX-64-STATIC: ret
@@ -6552,11 +6555,11 @@ entry:
; DARWIN-64-PIC: movl $262144, %eax
; DARWIN-64-PIC-NEXT: addq _dst at GOTPCREL(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast (i32* getelementptr ([131072 x i32], [131072 x i32]* @dst, i32 0, i64 65536) to i8*)
}
define i8* @bxm01() nounwind {
-entry:
- ret i8* bitcast (i32* getelementptr ([32 x i32], [32 x i32]* @xdst, i32 0, i64 65536) to i8*)
; LINUX-64-STATIC-LABEL: bxm01:
; LINUX-64-STATIC: movl $xdst+262144, %eax
; LINUX-64-STATIC: ret
@@ -6605,14 +6608,11 @@ entry:
; DARWIN-64-PIC: movl $262144, %eax
; DARWIN-64-PIC-NEXT: addq _xdst at GOTPCREL(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast (i32* getelementptr ([32 x i32], [32 x i32]* @xdst, i32 0, i64 65536) to i8*)
}
define i8* @bam02() nounwind {
-entry:
- %0 = load i32*, i32** @ptr, align 8
- %1 = getelementptr i32, i32* %0, i64 65536
- %2 = bitcast i32* %1 to i8*
- ret i8* %2
; LINUX-64-STATIC-LABEL: bam02:
; LINUX-64-STATIC: movl $262144, %eax
; LINUX-64-STATIC: addq ptr(%rip), %rax
@@ -6671,11 +6671,14 @@ entry:
; DARWIN-64-PIC-NEXT: movq _ptr at GOTPCREL(%rip), [[RCX:%r.x]]
; DARWIN-64-PIC-NEXT: addq ([[RCX]]), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32*, i32** @ptr, align 8
+ %1 = getelementptr i32, i32* %0, i64 65536
+ %2 = bitcast i32* %1 to i8*
+ ret i8* %2
}
define i8* @bam03() nounwind {
-entry:
- ret i8* bitcast (i32* getelementptr ([131072 x i32], [131072 x i32]* @dsrc, i32 0, i64 65536) to i8*)
; LINUX-64-STATIC-LABEL: bam03:
; LINUX-64-STATIC: movl $dsrc+262144, %eax
; LINUX-64-STATIC: ret
@@ -6719,11 +6722,11 @@ entry:
; DARWIN-64-PIC: _bam03:
; DARWIN-64-PIC: leaq _dsrc+262144(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast (i32* getelementptr ([131072 x i32], [131072 x i32]* @dsrc, i32 0, i64 65536) to i8*)
}
define i8* @bam04() nounwind {
-entry:
- ret i8* bitcast (i32* getelementptr ([131072 x i32], [131072 x i32]* @ddst, i32 0, i64 65536) to i8*)
; LINUX-64-STATIC-LABEL: bam04:
; LINUX-64-STATIC: movl $ddst+262144, %eax
; LINUX-64-STATIC: ret
@@ -6767,14 +6770,11 @@ entry:
; DARWIN-64-PIC: _bam04:
; DARWIN-64-PIC: leaq _ddst+262144(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast (i32* getelementptr ([131072 x i32], [131072 x i32]* @ddst, i32 0, i64 65536) to i8*)
}
define i8* @bam05() nounwind {
-entry:
- %0 = load i32*, i32** @dptr, align 8
- %1 = getelementptr i32, i32* %0, i64 65536
- %2 = bitcast i32* %1 to i8*
- ret i8* %2
; LINUX-64-STATIC-LABEL: bam05:
; LINUX-64-STATIC: movl $262144, %eax
; LINUX-64-STATIC: addq dptr(%rip), %rax
@@ -6828,11 +6828,14 @@ entry:
; DARWIN-64-PIC: movl $262144, %eax
; DARWIN-64-PIC-NEXT: addq _dptr(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32*, i32** @dptr, align 8
+ %1 = getelementptr i32, i32* %0, i64 65536
+ %2 = bitcast i32* %1 to i8*
+ ret i8* %2
}
define i8* @bam06() nounwind {
-entry:
- ret i8* bitcast (i32* getelementptr ([131072 x i32], [131072 x i32]* @lsrc, i32 0, i64 65536) to i8*)
; LINUX-64-STATIC-LABEL: bam06:
; LINUX-64-STATIC: movl $lsrc+262144, %eax
; LINUX-64-STATIC: ret
@@ -6875,11 +6878,11 @@ entry:
; DARWIN-64-PIC: _bam06:
; DARWIN-64-PIC: leaq _lsrc+262144(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast (i32* getelementptr ([131072 x i32], [131072 x i32]* @lsrc, i32 0, i64 65536) to i8*)
}
define i8* @bam07() nounwind {
-entry:
- ret i8* bitcast (i32* getelementptr ([131072 x i32], [131072 x i32]* @ldst, i32 0, i64 65536) to i8*)
; LINUX-64-STATIC-LABEL: bam07:
; LINUX-64-STATIC: movl $ldst+262144, %eax
; LINUX-64-STATIC: ret
@@ -6922,14 +6925,11 @@ entry:
; DARWIN-64-PIC: _bam07:
; DARWIN-64-PIC: leaq _ldst+262144(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret i8* bitcast (i32* getelementptr ([131072 x i32], [131072 x i32]* @ldst, i32 0, i64 65536) to i8*)
}
define i8* @bam08() nounwind {
-entry:
- %0 = load i32*, i32** @lptr, align 8
- %1 = getelementptr i32, i32* %0, i64 65536
- %2 = bitcast i32* %1 to i8*
- ret i8* %2
; LINUX-64-STATIC-LABEL: bam08:
; LINUX-64-STATIC: movl $262144, %eax
; LINUX-64-STATIC: addq lptr(%rip), %rax
@@ -6982,14 +6982,14 @@ entry:
; DARWIN-64-PIC: movl $262144, %eax
; DARWIN-64-PIC-NEXT: addq _lptr(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
-}
-
-define i8* @cat00(i64 %i) nounwind {
entry:
- %0 = add i64 %i, 16
- %1 = getelementptr [131072 x i32], [131072 x i32]* @src, i64 0, i64 %0
+ %0 = load i32*, i32** @lptr, align 8
+ %1 = getelementptr i32, i32* %0, i64 65536
%2 = bitcast i32* %1 to i8*
ret i8* %2
+}
+
+define i8* @cat00(i64 %i) nounwind {
; LINUX-64-STATIC-LABEL: cat00:
; LINUX-64-STATIC: leaq src+64(,%rdi,4), %rax
; LINUX-64-STATIC: ret
@@ -7043,14 +7043,14 @@ entry:
; DARWIN-64-PIC: movq _src at GOTPCREL(%rip), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: leaq 64([[RAX]],%rdi,4), %rax
; DARWIN-64-PIC-NEXT: ret
-}
-
-define i8* @cxt00(i64 %i) nounwind {
entry:
%0 = add i64 %i, 16
- %1 = getelementptr [32 x i32], [32 x i32]* @xsrc, i64 0, i64 %0
+ %1 = getelementptr [131072 x i32], [131072 x i32]* @src, i64 0, i64 %0
%2 = bitcast i32* %1 to i8*
ret i8* %2
+}
+
+define i8* @cxt00(i64 %i) nounwind {
; LINUX-64-STATIC-LABEL: cxt00:
; LINUX-64-STATIC: leaq xsrc+64(,%rdi,4), %rax
; LINUX-64-STATIC: ret
@@ -7104,14 +7104,14 @@ entry:
; DARWIN-64-PIC: movq _xsrc at GOTPCREL(%rip), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: leaq 64([[RAX]],%rdi,4), %rax
; DARWIN-64-PIC-NEXT: ret
-}
-
-define i8* @cat01(i64 %i) nounwind {
entry:
%0 = add i64 %i, 16
- %1 = getelementptr [131072 x i32], [131072 x i32]* @dst, i64 0, i64 %0
+ %1 = getelementptr [32 x i32], [32 x i32]* @xsrc, i64 0, i64 %0
%2 = bitcast i32* %1 to i8*
ret i8* %2
+}
+
+define i8* @cat01(i64 %i) nounwind {
; LINUX-64-STATIC-LABEL: cat01:
; LINUX-64-STATIC: leaq dst+64(,%rdi,4), %rax
; LINUX-64-STATIC: ret
@@ -7165,14 +7165,14 @@ entry:
; DARWIN-64-PIC: movq _dst at GOTPCREL(%rip), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: leaq 64([[RAX]],%rdi,4), %rax
; DARWIN-64-PIC-NEXT: ret
-}
-
-define i8* @cxt01(i64 %i) nounwind {
entry:
%0 = add i64 %i, 16
- %1 = getelementptr [32 x i32], [32 x i32]* @xdst, i64 0, i64 %0
+ %1 = getelementptr [131072 x i32], [131072 x i32]* @dst, i64 0, i64 %0
%2 = bitcast i32* %1 to i8*
ret i8* %2
+}
+
+define i8* @cxt01(i64 %i) nounwind {
; LINUX-64-STATIC-LABEL: cxt01:
; LINUX-64-STATIC: leaq xdst+64(,%rdi,4), %rax
; LINUX-64-STATIC: ret
@@ -7226,15 +7226,14 @@ entry:
; DARWIN-64-PIC: movq _xdst at GOTPCREL(%rip), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: leaq 64([[RAX]],%rdi,4), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = add i64 %i, 16
+ %1 = getelementptr [32 x i32], [32 x i32]* @xdst, i64 0, i64 %0
+ %2 = bitcast i32* %1 to i8*
+ ret i8* %2
}
define i8* @cat02(i64 %i) nounwind {
-entry:
- %0 = load i32*, i32** @ptr, align 8
- %1 = add i64 %i, 16
- %2 = getelementptr i32, i32* %0, i64 %1
- %3 = bitcast i32* %2 to i8*
- ret i8* %3
; LINUX-64-STATIC-LABEL: cat02:
; LINUX-64-STATIC: movq ptr(%rip), [[RAX:%r.x]]
; LINUX-64-STATIC: leaq 64([[RAX]],%rdi,4), %rax
@@ -7298,14 +7297,15 @@ entry:
; DARWIN-64-PIC-NEXT: movq ([[RAX]]), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: leaq 64([[RAX]],%rdi,4), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32*, i32** @ptr, align 8
+ %1 = add i64 %i, 16
+ %2 = getelementptr i32, i32* %0, i64 %1
+ %3 = bitcast i32* %2 to i8*
+ ret i8* %3
}
define i8* @cat03(i64 %i) nounwind {
-entry:
- %0 = add i64 %i, 16
- %1 = getelementptr [131072 x i32], [131072 x i32]* @dsrc, i64 0, i64 %0
- %2 = bitcast i32* %1 to i8*
- ret i8* %2
; LINUX-64-STATIC-LABEL: cat03:
; LINUX-64-STATIC: leaq dsrc+64(,%rdi,4), %rax
; LINUX-64-STATIC: ret
@@ -7357,14 +7357,14 @@ entry:
; DARWIN-64-PIC: leaq _dsrc(%rip), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: leaq 64([[RAX]],%rdi,4), %rax
; DARWIN-64-PIC-NEXT: ret
-}
-
-define i8* @cat04(i64 %i) nounwind {
entry:
%0 = add i64 %i, 16
- %1 = getelementptr [131072 x i32], [131072 x i32]* @ddst, i64 0, i64 %0
+ %1 = getelementptr [131072 x i32], [131072 x i32]* @dsrc, i64 0, i64 %0
%2 = bitcast i32* %1 to i8*
ret i8* %2
+}
+
+define i8* @cat04(i64 %i) nounwind {
; LINUX-64-STATIC-LABEL: cat04:
; LINUX-64-STATIC: leaq ddst+64(,%rdi,4), %rax
; LINUX-64-STATIC: ret
@@ -7416,15 +7416,14 @@ entry:
; DARWIN-64-PIC: leaq _ddst(%rip), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: leaq 64([[RAX]],%rdi,4), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = add i64 %i, 16
+ %1 = getelementptr [131072 x i32], [131072 x i32]* @ddst, i64 0, i64 %0
+ %2 = bitcast i32* %1 to i8*
+ ret i8* %2
}
define i8* @cat05(i64 %i) nounwind {
-entry:
- %0 = load i32*, i32** @dptr, align 8
- %1 = add i64 %i, 16
- %2 = getelementptr i32, i32* %0, i64 %1
- %3 = bitcast i32* %2 to i8*
- ret i8* %3
; LINUX-64-STATIC-LABEL: cat05:
; LINUX-64-STATIC: movq dptr(%rip), [[RAX:%r.x]]
; LINUX-64-STATIC: leaq 64([[RAX]],%rdi,4), %rax
@@ -7483,14 +7482,15 @@ entry:
; DARWIN-64-PIC: movq _dptr(%rip), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: leaq 64([[RAX]],%rdi,4), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32*, i32** @dptr, align 8
+ %1 = add i64 %i, 16
+ %2 = getelementptr i32, i32* %0, i64 %1
+ %3 = bitcast i32* %2 to i8*
+ ret i8* %3
}
define i8* @cat06(i64 %i) nounwind {
-entry:
- %0 = add i64 %i, 16
- %1 = getelementptr [131072 x i32], [131072 x i32]* @lsrc, i64 0, i64 %0
- %2 = bitcast i32* %1 to i8*
- ret i8* %2
; LINUX-64-STATIC-LABEL: cat06:
; LINUX-64-STATIC: leaq lsrc+64(,%rdi,4), %rax
; LINUX-64-STATIC: ret
@@ -7542,14 +7542,14 @@ entry:
; DARWIN-64-PIC: leaq _lsrc(%rip), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: leaq 64([[RAX]],%rdi,4), %rax
; DARWIN-64-PIC-NEXT: ret
-}
-
-define i8* @cat07(i64 %i) nounwind {
entry:
%0 = add i64 %i, 16
- %1 = getelementptr [131072 x i32], [131072 x i32]* @ldst, i64 0, i64 %0
+ %1 = getelementptr [131072 x i32], [131072 x i32]* @lsrc, i64 0, i64 %0
%2 = bitcast i32* %1 to i8*
ret i8* %2
+}
+
+define i8* @cat07(i64 %i) nounwind {
; LINUX-64-STATIC-LABEL: cat07:
; LINUX-64-STATIC: leaq ldst+64(,%rdi,4), %rax
; LINUX-64-STATIC: ret
@@ -7601,15 +7601,14 @@ entry:
; DARWIN-64-PIC: leaq _ldst(%rip), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: leaq 64([[RAX]],%rdi,4), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = add i64 %i, 16
+ %1 = getelementptr [131072 x i32], [131072 x i32]* @ldst, i64 0, i64 %0
+ %2 = bitcast i32* %1 to i8*
+ ret i8* %2
}
define i8* @cat08(i64 %i) nounwind {
-entry:
- %0 = load i32*, i32** @lptr, align 8
- %1 = add i64 %i, 16
- %2 = getelementptr i32, i32* %0, i64 %1
- %3 = bitcast i32* %2 to i8*
- ret i8* %3
; LINUX-64-STATIC-LABEL: cat08:
; LINUX-64-STATIC: movq lptr(%rip), [[RAX:%r.x]]
; LINUX-64-STATIC: leaq 64([[RAX]],%rdi,4), %rax
@@ -7667,14 +7666,15 @@ entry:
; DARWIN-64-PIC: movq _lptr(%rip), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: leaq 64([[RAX]],%rdi,4), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32*, i32** @lptr, align 8
+ %1 = add i64 %i, 16
+ %2 = getelementptr i32, i32* %0, i64 %1
+ %3 = bitcast i32* %2 to i8*
+ ret i8* %3
}
define i8* @cam00(i64 %i) nounwind {
-entry:
- %0 = add i64 %i, 65536
- %1 = getelementptr [131072 x i32], [131072 x i32]* @src, i64 0, i64 %0
- %2 = bitcast i32* %1 to i8*
- ret i8* %2
; LINUX-64-STATIC-LABEL: cam00:
; LINUX-64-STATIC: leaq src+262144(,%rdi,4), %rax
; LINUX-64-STATIC: ret
@@ -7728,14 +7728,14 @@ entry:
; DARWIN-64-PIC: movq _src at GOTPCREL(%rip), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: leaq 262144([[RAX]],%rdi,4), %rax
; DARWIN-64-PIC-NEXT: ret
-}
-
-define i8* @cxm00(i64 %i) nounwind {
entry:
%0 = add i64 %i, 65536
- %1 = getelementptr [32 x i32], [32 x i32]* @xsrc, i64 0, i64 %0
+ %1 = getelementptr [131072 x i32], [131072 x i32]* @src, i64 0, i64 %0
%2 = bitcast i32* %1 to i8*
ret i8* %2
+}
+
+define i8* @cxm00(i64 %i) nounwind {
; LINUX-64-STATIC-LABEL: cxm00:
; LINUX-64-STATIC: leaq xsrc+262144(,%rdi,4), %rax
; LINUX-64-STATIC: ret
@@ -7789,14 +7789,14 @@ entry:
; DARWIN-64-PIC: movq _xsrc at GOTPCREL(%rip), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: leaq 262144([[RAX]],%rdi,4), %rax
; DARWIN-64-PIC-NEXT: ret
-}
-
-define i8* @cam01(i64 %i) nounwind {
entry:
%0 = add i64 %i, 65536
- %1 = getelementptr [131072 x i32], [131072 x i32]* @dst, i64 0, i64 %0
+ %1 = getelementptr [32 x i32], [32 x i32]* @xsrc, i64 0, i64 %0
%2 = bitcast i32* %1 to i8*
ret i8* %2
+}
+
+define i8* @cam01(i64 %i) nounwind {
; LINUX-64-STATIC-LABEL: cam01:
; LINUX-64-STATIC: leaq dst+262144(,%rdi,4), %rax
; LINUX-64-STATIC: ret
@@ -7850,14 +7850,14 @@ entry:
; DARWIN-64-PIC: movq _dst at GOTPCREL(%rip), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: leaq 262144([[RAX]],%rdi,4), %rax
; DARWIN-64-PIC-NEXT: ret
-}
-
-define i8* @cxm01(i64 %i) nounwind {
entry:
%0 = add i64 %i, 65536
- %1 = getelementptr [32 x i32], [32 x i32]* @xdst, i64 0, i64 %0
+ %1 = getelementptr [131072 x i32], [131072 x i32]* @dst, i64 0, i64 %0
%2 = bitcast i32* %1 to i8*
ret i8* %2
+}
+
+define i8* @cxm01(i64 %i) nounwind {
; LINUX-64-STATIC-LABEL: cxm01:
; LINUX-64-STATIC: leaq xdst+262144(,%rdi,4), %rax
; LINUX-64-STATIC: ret
@@ -7911,15 +7911,14 @@ entry:
; DARWIN-64-PIC: movq _xdst at GOTPCREL(%rip), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: leaq 262144([[RAX]],%rdi,4), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = add i64 %i, 65536
+ %1 = getelementptr [32 x i32], [32 x i32]* @xdst, i64 0, i64 %0
+ %2 = bitcast i32* %1 to i8*
+ ret i8* %2
}
define i8* @cam02(i64 %i) nounwind {
-entry:
- %0 = load i32*, i32** @ptr, align 8
- %1 = add i64 %i, 65536
- %2 = getelementptr i32, i32* %0, i64 %1
- %3 = bitcast i32* %2 to i8*
- ret i8* %3
; LINUX-64-STATIC-LABEL: cam02:
; LINUX-64-STATIC: movq ptr(%rip), [[RAX:%r.x]]
; LINUX-64-STATIC: leaq 262144([[RAX]],%rdi,4), %rax
@@ -7983,14 +7982,15 @@ entry:
; DARWIN-64-PIC-NEXT: movq ([[RAX]]), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: leaq 262144([[RAX]],%rdi,4), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32*, i32** @ptr, align 8
+ %1 = add i64 %i, 65536
+ %2 = getelementptr i32, i32* %0, i64 %1
+ %3 = bitcast i32* %2 to i8*
+ ret i8* %3
}
define i8* @cam03(i64 %i) nounwind {
-entry:
- %0 = add i64 %i, 65536
- %1 = getelementptr [131072 x i32], [131072 x i32]* @dsrc, i64 0, i64 %0
- %2 = bitcast i32* %1 to i8*
- ret i8* %2
; LINUX-64-STATIC-LABEL: cam03:
; LINUX-64-STATIC: leaq dsrc+262144(,%rdi,4), %rax
; LINUX-64-STATIC: ret
@@ -8042,14 +8042,14 @@ entry:
; DARWIN-64-PIC: leaq _dsrc(%rip), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: leaq 262144([[RAX]],%rdi,4), %rax
; DARWIN-64-PIC-NEXT: ret
-}
-
-define i8* @cam04(i64 %i) nounwind {
entry:
%0 = add i64 %i, 65536
- %1 = getelementptr [131072 x i32], [131072 x i32]* @ddst, i64 0, i64 %0
+ %1 = getelementptr [131072 x i32], [131072 x i32]* @dsrc, i64 0, i64 %0
%2 = bitcast i32* %1 to i8*
ret i8* %2
+}
+
+define i8* @cam04(i64 %i) nounwind {
; LINUX-64-STATIC-LABEL: cam04:
; LINUX-64-STATIC: leaq ddst+262144(,%rdi,4), %rax
; LINUX-64-STATIC: ret
@@ -8101,15 +8101,14 @@ entry:
; DARWIN-64-PIC: leaq _ddst(%rip), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: leaq 262144([[RAX]],%rdi,4), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = add i64 %i, 65536
+ %1 = getelementptr [131072 x i32], [131072 x i32]* @ddst, i64 0, i64 %0
+ %2 = bitcast i32* %1 to i8*
+ ret i8* %2
}
define i8* @cam05(i64 %i) nounwind {
-entry:
- %0 = load i32*, i32** @dptr, align 8
- %1 = add i64 %i, 65536
- %2 = getelementptr i32, i32* %0, i64 %1
- %3 = bitcast i32* %2 to i8*
- ret i8* %3
; LINUX-64-STATIC-LABEL: cam05:
; LINUX-64-STATIC: movq dptr(%rip), [[RAX:%r.x]]
; LINUX-64-STATIC: leaq 262144([[RAX]],%rdi,4), %rax
@@ -8168,14 +8167,15 @@ entry:
; DARWIN-64-PIC: movq _dptr(%rip), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: leaq 262144([[RAX]],%rdi,4), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32*, i32** @dptr, align 8
+ %1 = add i64 %i, 65536
+ %2 = getelementptr i32, i32* %0, i64 %1
+ %3 = bitcast i32* %2 to i8*
+ ret i8* %3
}
define i8* @cam06(i64 %i) nounwind {
-entry:
- %0 = add i64 %i, 65536
- %1 = getelementptr [131072 x i32], [131072 x i32]* @lsrc, i64 0, i64 %0
- %2 = bitcast i32* %1 to i8*
- ret i8* %2
; LINUX-64-STATIC-LABEL: cam06:
; LINUX-64-STATIC: leaq lsrc+262144(,%rdi,4), %rax
; LINUX-64-STATIC: ret
@@ -8227,14 +8227,14 @@ entry:
; DARWIN-64-PIC: leaq _lsrc(%rip), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: leaq 262144([[RAX]],%rdi,4), %rax
; DARWIN-64-PIC-NEXT: ret
-}
-
-define i8* @cam07(i64 %i) nounwind {
entry:
%0 = add i64 %i, 65536
- %1 = getelementptr [131072 x i32], [131072 x i32]* @ldst, i64 0, i64 %0
+ %1 = getelementptr [131072 x i32], [131072 x i32]* @lsrc, i64 0, i64 %0
%2 = bitcast i32* %1 to i8*
ret i8* %2
+}
+
+define i8* @cam07(i64 %i) nounwind {
; LINUX-64-STATIC-LABEL: cam07:
; LINUX-64-STATIC: leaq ldst+262144(,%rdi,4), %rax
; LINUX-64-STATIC: ret
@@ -8286,15 +8286,14 @@ entry:
; DARWIN-64-PIC: leaq _ldst(%rip), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: leaq 262144([[RAX]],%rdi,4), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = add i64 %i, 65536
+ %1 = getelementptr [131072 x i32], [131072 x i32]* @ldst, i64 0, i64 %0
+ %2 = bitcast i32* %1 to i8*
+ ret i8* %2
}
define i8* @cam08(i64 %i) nounwind {
-entry:
- %0 = load i32*, i32** @lptr, align 8
- %1 = add i64 %i, 65536
- %2 = getelementptr i32, i32* %0, i64 %1
- %3 = bitcast i32* %2 to i8*
- ret i8* %3
; LINUX-64-STATIC-LABEL: cam08:
; LINUX-64-STATIC: movq lptr(%rip), [[RAX:%r.x]]
; LINUX-64-STATIC: leaq 262144([[RAX]],%rdi,4), %rax
@@ -8352,18 +8351,15 @@ entry:
; DARWIN-64-PIC: movq _lptr(%rip), [[RAX:%r.x]]
; DARWIN-64-PIC-NEXT: leaq 262144([[RAX]],%rdi,4), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load i32*, i32** @lptr, align 8
+ %1 = add i64 %i, 65536
+ %2 = getelementptr i32, i32* %0, i64 %1
+ %3 = bitcast i32* %2 to i8*
+ ret i8* %3
}
define void @lcallee() nounwind {
-entry:
- call void @x() nounwind
- call void @x() nounwind
- call void @x() nounwind
- call void @x() nounwind
- call void @x() nounwind
- call void @x() nounwind
- call void @x() nounwind
- ret void
; LINUX-64-STATIC-LABEL: lcallee:
; LINUX-64-STATIC: callq x
; LINUX-64-STATIC: callq x
@@ -8482,20 +8478,20 @@ entry:
; DARWIN-64-PIC-NEXT: callq _x
; DARWIN-64-PIC-NEXT: popq
; DARWIN-64-PIC-NEXT: ret
+entry:
+ call void @x() nounwind
+ call void @x() nounwind
+ call void @x() nounwind
+ call void @x() nounwind
+ call void @x() nounwind
+ call void @x() nounwind
+ call void @x() nounwind
+ ret void
}
declare void @x()
define internal void @dcallee() nounwind {
-entry:
- call void @y() nounwind
- call void @y() nounwind
- call void @y() nounwind
- call void @y() nounwind
- call void @y() nounwind
- call void @y() nounwind
- call void @y() nounwind
- ret void
; LINUX-64-STATIC-LABEL: dcallee:
; LINUX-64-STATIC: callq y
; LINUX-64-STATIC: callq y
@@ -8614,13 +8610,20 @@ entry:
; DARWIN-64-PIC-NEXT: callq _y
; DARWIN-64-PIC-NEXT: popq
; DARWIN-64-PIC-NEXT: ret
+entry:
+ call void @y() nounwind
+ call void @y() nounwind
+ call void @y() nounwind
+ call void @y() nounwind
+ call void @y() nounwind
+ call void @y() nounwind
+ call void @y() nounwind
+ ret void
}
declare void @y()
define void ()* @address() nounwind {
-entry:
- ret void ()* @callee
; LINUX-64-STATIC-LABEL: address:
; LINUX-64-STATIC: movl $callee, %eax
; LINUX-64-STATIC: ret
@@ -8663,13 +8666,13 @@ entry:
; DARWIN-64-PIC: _address:
; DARWIN-64-PIC: movq _callee at GOTPCREL(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret void ()* @callee
}
declare void @callee()
define void ()* @laddress() nounwind {
-entry:
- ret void ()* @lcallee
; LINUX-64-STATIC-LABEL: laddress:
; LINUX-64-STATIC: movl $lcallee, %eax
; LINUX-64-STATIC: ret
@@ -8712,11 +8715,11 @@ entry:
; DARWIN-64-PIC: _laddress:
; DARWIN-64-PIC: leaq _lcallee(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret void ()* @lcallee
}
define void ()* @daddress() nounwind {
-entry:
- ret void ()* @dcallee
; LINUX-64-STATIC-LABEL: daddress:
; LINUX-64-STATIC: movl $dcallee, %eax
; LINUX-64-STATIC: ret
@@ -8759,13 +8762,11 @@ entry:
; DARWIN-64-PIC: _daddress:
; DARWIN-64-PIC: leaq _dcallee(%rip), %rax
; DARWIN-64-PIC-NEXT: ret
+entry:
+ ret void ()* @dcallee
}
define void @caller() nounwind {
-entry:
- call void @callee() nounwind
- call void @callee() nounwind
- ret void
; LINUX-64-STATIC-LABEL: caller:
; LINUX-64-STATIC: callq callee
; LINUX-64-STATIC: callq callee
@@ -8834,13 +8835,13 @@ entry:
; DARWIN-64-PIC-NEXT: callq _callee
; DARWIN-64-PIC-NEXT: popq
; DARWIN-64-PIC-NEXT: ret
+entry:
+ call void @callee() nounwind
+ call void @callee() nounwind
+ ret void
}
define void @dcaller() nounwind {
-entry:
- call void @dcallee() nounwind
- call void @dcallee() nounwind
- ret void
; LINUX-64-STATIC-LABEL: dcaller:
; LINUX-64-STATIC: callq dcallee
; LINUX-64-STATIC: callq dcallee
@@ -8909,13 +8910,13 @@ entry:
; DARWIN-64-PIC-NEXT: callq _dcallee
; DARWIN-64-PIC-NEXT: popq
; DARWIN-64-PIC-NEXT: ret
+entry:
+ call void @dcallee() nounwind
+ call void @dcallee() nounwind
+ ret void
}
define void @lcaller() nounwind {
-entry:
- call void @lcallee() nounwind
- call void @lcallee() nounwind
- ret void
; LINUX-64-STATIC-LABEL: lcaller:
; LINUX-64-STATIC: callq lcallee
; LINUX-64-STATIC: callq lcallee
@@ -8984,12 +8985,13 @@ entry:
; DARWIN-64-PIC-NEXT: callq _lcallee
; DARWIN-64-PIC-NEXT: popq
; DARWIN-64-PIC-NEXT: ret
+entry:
+ call void @lcallee() nounwind
+ call void @lcallee() nounwind
+ ret void
}
define void @tailcaller() nounwind {
-entry:
- call void @callee() nounwind
- ret void
; LINUX-64-STATIC-LABEL: tailcaller:
; LINUX-64-STATIC: callq callee
; LINUX-64-STATIC: ret
@@ -9048,12 +9050,12 @@ entry:
; DARWIN-64-PIC-NEXT: callq _callee
; DARWIN-64-PIC-NEXT: popq
; DARWIN-64-PIC-NEXT: ret
+entry:
+ call void @callee() nounwind
+ ret void
}
define void @dtailcaller() nounwind {
-entry:
- call void @dcallee() nounwind
- ret void
; LINUX-64-STATIC-LABEL: dtailcaller:
; LINUX-64-STATIC: callq dcallee
; LINUX-64-STATIC: ret
@@ -9112,12 +9114,12 @@ entry:
; DARWIN-64-PIC-NEXT: callq _dcallee
; DARWIN-64-PIC-NEXT: popq
; DARWIN-64-PIC-NEXT: ret
+entry:
+ call void @dcallee() nounwind
+ ret void
}
define void @ltailcaller() nounwind {
-entry:
- call void @lcallee() nounwind
- ret void
; LINUX-64-STATIC-LABEL: ltailcaller:
; LINUX-64-STATIC: callq lcallee
; LINUX-64-STATIC: ret
@@ -9176,15 +9178,12 @@ entry:
; DARWIN-64-PIC-NEXT: callq _lcallee
; DARWIN-64-PIC-NEXT: popq
; DARWIN-64-PIC-NEXT: ret
+entry:
+ call void @lcallee() nounwind
+ ret void
}
define void @icaller() nounwind {
-entry:
- %0 = load void ()*, void ()** @ifunc, align 8
- call void %0() nounwind
- %1 = load void ()*, void ()** @ifunc, align 8
- call void %1() nounwind
- ret void
; LINUX-64-STATIC-LABEL: icaller:
; LINUX-64-STATIC: callq *ifunc
; LINUX-64-STATIC: callq *ifunc
@@ -9266,15 +9265,15 @@ entry:
; DARWIN-64-PIC-NEXT: callq *([[RBX]])
; DARWIN-64-PIC-NEXT: popq [[RBX:%r.x]]
; DARWIN-64-PIC-NEXT: ret
-}
-
-define void @dicaller() nounwind {
entry:
- %0 = load void ()*, void ()** @difunc, align 8
+ %0 = load void ()*, void ()** @ifunc, align 8
call void %0() nounwind
- %1 = load void ()*, void ()** @difunc, align 8
+ %1 = load void ()*, void ()** @ifunc, align 8
call void %1() nounwind
ret void
+}
+
+define void @dicaller() nounwind {
; LINUX-64-STATIC-LABEL: dicaller:
; LINUX-64-STATIC: callq *difunc
; LINUX-64-STATIC: callq *difunc
@@ -9349,15 +9348,15 @@ entry:
; DARWIN-64-PIC-NEXT: callq *_difunc(%rip)
; DARWIN-64-PIC-NEXT: popq
; DARWIN-64-PIC-NEXT: ret
-}
-
-define void @licaller() nounwind {
entry:
- %0 = load void ()*, void ()** @lifunc, align 8
+ %0 = load void ()*, void ()** @difunc, align 8
call void %0() nounwind
- %1 = load void ()*, void ()** @lifunc, align 8
+ %1 = load void ()*, void ()** @difunc, align 8
call void %1() nounwind
ret void
+}
+
+define void @licaller() nounwind {
; LINUX-64-STATIC-LABEL: licaller:
; LINUX-64-STATIC: callq *lifunc
; LINUX-64-STATIC: callq *lifunc
@@ -9431,15 +9430,15 @@ entry:
; DARWIN-64-PIC-NEXT: callq *_lifunc(%rip)
; DARWIN-64-PIC-NEXT: popq
; DARWIN-64-PIC-NEXT: ret
-}
-
-define void @itailcaller() nounwind {
entry:
- %0 = load void ()*, void ()** @ifunc, align 8
+ %0 = load void ()*, void ()** @lifunc, align 8
call void %0() nounwind
- %1 = load void ()*, void ()** @ifunc, align 8
+ %1 = load void ()*, void ()** @lifunc, align 8
call void %1() nounwind
ret void
+}
+
+define void @itailcaller() nounwind {
; LINUX-64-STATIC-LABEL: itailcaller:
; LINUX-64-STATIC: callq *ifunc
; LINUX-64-STATIC: callq *ifunc
@@ -9521,13 +9520,15 @@ entry:
; DARWIN-64-PIC-NEXT: callq *([[RBX]])
; DARWIN-64-PIC-NEXT: popq [[RBX:%r.x]]
; DARWIN-64-PIC-NEXT: ret
-}
-
-define void @ditailcaller() nounwind {
entry:
- %0 = load void ()*, void ()** @difunc, align 8
+ %0 = load void ()*, void ()** @ifunc, align 8
call void %0() nounwind
+ %1 = load void ()*, void ()** @ifunc, align 8
+ call void %1() nounwind
ret void
+}
+
+define void @ditailcaller() nounwind {
; LINUX-64-STATIC-LABEL: ditailcaller:
; LINUX-64-STATIC: callq *difunc
; LINUX-64-STATIC: ret
@@ -9589,13 +9590,13 @@ entry:
; DARWIN-64-PIC: callq *_difunc(%rip)
; DARWIN-64-PIC-NEXT: popq
; DARWIN-64-PIC-NEXT: ret
-}
-
-define void @litailcaller() nounwind {
entry:
- %0 = load void ()*, void ()** @lifunc, align 8
+ %0 = load void ()*, void ()** @difunc, align 8
call void %0() nounwind
ret void
+}
+
+define void @litailcaller() nounwind {
; LINUX-64-STATIC-LABEL: litailcaller:
; LINUX-64-STATIC: callq *lifunc
; LINUX-64-STATIC: ret
@@ -9657,4 +9658,8 @@ entry:
; DARWIN-64-PIC-NEXT: callq *_lifunc(%rip)
; DARWIN-64-PIC-NEXT: popq
; DARWIN-64-PIC-NEXT: ret
+entry:
+ %0 = load void ()*, void ()** @lifunc, align 8
+ call void %0() nounwind
+ ret void
}
More information about the llvm-commits
mailing list