Last active
August 29, 2015 14:16
-
-
Save chfast/40fba48316b5772c88d5 to your computer and use it in GitHub Desktop.
LLVM shift test
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
; RUN: opt < %s -constprop -S | FileCheck %s | |
; CHECK-LABEL: shift_undef_65 | |
define void @shift_undef_65(i65* %p) { | |
%r1 = lshr i65 2, 18446744073709551617 | |
; CHECK: store i65 undef, %p | |
store i65 %r1, i65* %p | |
%r2 = ashr i65 4, 18446744073709551617 | |
; CHECK: store i65 undef, %p | |
store i65 %r2, i65* %p | |
%r3 = shl i65 1, 18446744073709551617 | |
; CHECK: store i65 undef, %p | |
store i65 %r3, i65* %p | |
ret void | |
} | |
; CHECK-LABEL: shift_undef_256 | |
define void @shift_undef_256(i256* %p) { | |
%r1 = lshr i256 2, 18446744073709551617 | |
; CHECK: store i256 undef, %p | |
store i256 %r1, i256* %p | |
%r2 = ashr i256 4, 18446744073709551618 | |
; CHECK: store i256 undef, %p | |
store i256 %r2, i256* %p | |
%r3 = shl i256 1, 18446744073709551619 | |
; CHECK: store i256 undef, %p | |
store i256 %r3, i256* %p | |
ret void | |
} | |
; CHECK-LABEL: shift_undef_511 | |
define void @shift_undef_511(i511* %p) { | |
%r1 = lshr i511 -1, 1208925819614629174706276 ; 2^80 + 100 | |
; CHECK: store i511 undef, %p | |
store i511 %r1, i511* %p | |
%r2 = ashr i511 -2, 1208925819614629174706200 | |
; CHECK: store i511 undef, %p | |
store i511 %r2, i511* %p | |
%r3 = shl i511 -3, 1208925819614629174706180 | |
; CHECK: store i511 undef, %p | |
store i511 %r3, i511* %p | |
ret void | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment