1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -constprop -S | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: shift_undef_64 4*9880d681SAndroid Build Coastguard Workerdefine void @shift_undef_64(i64* %p) { 5*9880d681SAndroid Build Coastguard Worker %r1 = lshr i64 -1, 4294967296 ; 2^32 6*9880d681SAndroid Build Coastguard Worker ; CHECK: store i64 undef 7*9880d681SAndroid Build Coastguard Worker store i64 %r1, i64* %p 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Worker %r2 = ashr i64 -1, 4294967297 ; 2^32 + 1 10*9880d681SAndroid Build Coastguard Worker ; CHECK: store i64 undef 11*9880d681SAndroid Build Coastguard Worker store i64 %r2, i64* %p 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Worker %r3 = shl i64 -1, 4294967298 ; 2^32 + 2 14*9880d681SAndroid Build Coastguard Worker ; CHECK: store i64 undef 15*9880d681SAndroid Build Coastguard Worker store i64 %r3, i64* %p 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard Worker ret void 18*9880d681SAndroid Build Coastguard Worker} 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: shift_undef_65 21*9880d681SAndroid Build Coastguard Workerdefine void @shift_undef_65(i65* %p) { 22*9880d681SAndroid Build Coastguard Worker %r1 = lshr i65 2, 18446744073709551617 23*9880d681SAndroid Build Coastguard Worker ; CHECK: store i65 undef 24*9880d681SAndroid Build Coastguard Worker store i65 %r1, i65* %p 25*9880d681SAndroid Build Coastguard Worker 26*9880d681SAndroid Build Coastguard Worker %r2 = ashr i65 4, 18446744073709551617 27*9880d681SAndroid Build Coastguard Worker ; CHECK: store i65 undef 28*9880d681SAndroid Build Coastguard Worker store i65 %r2, i65* %p 29*9880d681SAndroid Build Coastguard Worker 30*9880d681SAndroid Build Coastguard Worker %r3 = shl i65 1, 18446744073709551617 31*9880d681SAndroid Build Coastguard Worker ; CHECK: store i65 undef 32*9880d681SAndroid Build Coastguard Worker store i65 %r3, i65* %p 33*9880d681SAndroid Build Coastguard Worker 34*9880d681SAndroid Build Coastguard Worker ret void 35*9880d681SAndroid Build Coastguard Worker} 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: shift_undef_256 38*9880d681SAndroid Build Coastguard Workerdefine void @shift_undef_256(i256* %p) { 39*9880d681SAndroid Build Coastguard Worker %r1 = lshr i256 2, 18446744073709551617 40*9880d681SAndroid Build Coastguard Worker ; CHECK: store i256 undef 41*9880d681SAndroid Build Coastguard Worker store i256 %r1, i256* %p 42*9880d681SAndroid Build Coastguard Worker 43*9880d681SAndroid Build Coastguard Worker %r2 = ashr i256 4, 18446744073709551618 44*9880d681SAndroid Build Coastguard Worker ; CHECK: store i256 undef 45*9880d681SAndroid Build Coastguard Worker store i256 %r2, i256* %p 46*9880d681SAndroid Build Coastguard Worker 47*9880d681SAndroid Build Coastguard Worker %r3 = shl i256 1, 18446744073709551619 48*9880d681SAndroid Build Coastguard Worker ; CHECK: store i256 undef 49*9880d681SAndroid Build Coastguard Worker store i256 %r3, i256* %p 50*9880d681SAndroid Build Coastguard Worker 51*9880d681SAndroid Build Coastguard Worker ret void 52*9880d681SAndroid Build Coastguard Worker} 53*9880d681SAndroid Build Coastguard Worker 54*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: shift_undef_511 55*9880d681SAndroid Build Coastguard Workerdefine void @shift_undef_511(i511* %p) { 56*9880d681SAndroid Build Coastguard Worker %r1 = lshr i511 -1, 1208925819614629174706276 ; 2^80 + 100 57*9880d681SAndroid Build Coastguard Worker ; CHECK: store i511 undef 58*9880d681SAndroid Build Coastguard Worker store i511 %r1, i511* %p 59*9880d681SAndroid Build Coastguard Worker 60*9880d681SAndroid Build Coastguard Worker %r2 = ashr i511 -2, 1208925819614629174706200 61*9880d681SAndroid Build Coastguard Worker ; CHECK: store i511 undef 62*9880d681SAndroid Build Coastguard Worker store i511 %r2, i511* %p 63*9880d681SAndroid Build Coastguard Worker 64*9880d681SAndroid Build Coastguard Worker %r3 = shl i511 -3, 1208925819614629174706180 65*9880d681SAndroid Build Coastguard Worker ; CHECK: store i511 undef 66*9880d681SAndroid Build Coastguard Worker store i511 %r3, i511* %p 67*9880d681SAndroid Build Coastguard Worker 68*9880d681SAndroid Build Coastguard Worker ret void 69*9880d681SAndroid Build Coastguard Worker} 70