projects
/
oota-llvm.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
c317d39
)
Add a test for the "swap idiom", which LLVM should be able to unravel.
author
Chris Lattner
<sabre@nondot.org>
Mon, 16 Feb 2004 03:53:44 +0000
(
03:53
+0000)
committer
Chris Lattner
<sabre@nondot.org>
Mon, 16 Feb 2004 03:53:44 +0000
(
03:53
+0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11491
91177308
-0d34-0410-b5e6-
96231b3b80d8
test/Transforms/InstCombine/xor.ll
patch
|
blob
|
history
diff --git
a/test/Transforms/InstCombine/xor.ll
b/test/Transforms/InstCombine/xor.ll
index 29f0f10fddfeaa2d64fa3e78111bf3e0b72f2c5a..772c48058819ad9923bc083a9b2f4f510262187b 100644
(file)
--- a/
test/Transforms/InstCombine/xor.ll
+++ b/
test/Transforms/InstCombine/xor.ll
@@
-3,6
+3,9
@@
; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep 'xor '
+%G1 = global uint 0
+%G2 = global uint 0
+
implementation
bool %test0(bool %A) {
@@
-128,3
+131,14
@@
uint %test19(uint %A, uint %B) {
%D = xor uint %C, %A ; A terms cancel, D = B
ret uint %D
}
+
+void %test20(uint %A, uint %B) { ; The "swap idiom"
+ %tmp.2 = xor uint %B, %A
+ %tmp.5 = xor uint %tmp.2, %B
+ %tmp.8 = xor uint %tmp.5, %tmp.2
+ store uint %tmp.8, uint* %G1 ; tmp.8 = B
+ store uint %tmp.5, uint* %G2 ; tmp.5 = A
+ ret void
+}
+
+