Last active
November 29, 2016 05:33
-
-
Save minjang/b4e865dc88e02abe62ad79feff9763cb to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
%a = call i32 @get() | |
%b = call i32 @get() | |
%xor = xor i32 %b, %a | |
%xor1 = xor i32 %a, %xor | |
; => %xor1 = %a ^ %xor | |
; => %xor1 = %a ^ (%b ^ %a) ; a ^ (b ^ a) = b ^ 0 | |
; => %xor1 = %b ^ 0 ; b ^ 0 = b | |
; => %xor1 = %b ; 이후 %xor1 사용처를 모두 %b로 바꿈 | |
; => %xor1 삭제 | |
%xor2 = xor i32 %xor, %xor1 | |
; => %xor2 = %xor ^ %xor1 | |
; => %xor2 = %xor ^ %b ; %xor1은 이미 %b로 바뀌어졌음 | |
; => %xor2 = (%b ^ %a) ^ %b ; (b ^ a) ^ b = a ^ 0 | |
; => %xor2 = %a ^ 0 ; a ^ 0 = a | |
; => %xor2 = %a ; 이후 %xor2 사용처를 모두 %a로 바꿈 | |
; => %xor2 삭제 | |
%call2 = call i32 @process(i32 %xor2, i32 %xor1) | |
; %xor2는 %a로, %xor1는 %b로 바꿈 | |
; => %call2 = call i32 @process(%a, %b) | |
; %xor도 더 이상 사용되지 않으므로 삭제 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment