mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-26 10:29:36 +00:00
Add a test for the "swap idiom", which LLVM should be able to unravel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11491 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
c317d39887
commit
72695f7bb7
@ -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
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user