1b280ee1dSBjorn Pettersson; RUN: opt < %s -passes=instsimplify -S | FileCheck %s 2486ed885SArthur Eubanks 3486ed885SArthur Eubanks; CHECK-LABEL: shift_undef_64 4*04b944e2SNikita Popovdefine void @shift_undef_64(ptr %p) { 5486ed885SArthur Eubanks %r1 = lshr i64 -1, 4294967296 ; 2^32 6395607afSJuneyoung Lee ; CHECK: store i64 poison 7*04b944e2SNikita Popov store i64 %r1, ptr %p 8486ed885SArthur Eubanks 9486ed885SArthur Eubanks %r2 = ashr i64 -1, 4294967297 ; 2^32 + 1 10395607afSJuneyoung Lee ; CHECK: store i64 poison 11*04b944e2SNikita Popov store i64 %r2, ptr %p 12486ed885SArthur Eubanks 13486ed885SArthur Eubanks %r3 = shl i64 -1, 4294967298 ; 2^32 + 2 14395607afSJuneyoung Lee ; CHECK: store i64 poison 15*04b944e2SNikita Popov store i64 %r3, ptr %p 16486ed885SArthur Eubanks 17486ed885SArthur Eubanks ret void 18486ed885SArthur Eubanks} 19486ed885SArthur Eubanks 20486ed885SArthur Eubanks; CHECK-LABEL: shift_undef_65 21*04b944e2SNikita Popovdefine void @shift_undef_65(ptr %p) { 22486ed885SArthur Eubanks %r1 = lshr i65 2, 18446744073709551617 23395607afSJuneyoung Lee ; CHECK: store i65 poison 24*04b944e2SNikita Popov store i65 %r1, ptr %p 25486ed885SArthur Eubanks 26486ed885SArthur Eubanks %r2 = ashr i65 4, 18446744073709551617 27395607afSJuneyoung Lee ; CHECK: store i65 poison 28*04b944e2SNikita Popov store i65 %r2, ptr %p 29486ed885SArthur Eubanks 30486ed885SArthur Eubanks %r3 = shl i65 1, 18446744073709551617 31395607afSJuneyoung Lee ; CHECK: store i65 poison 32*04b944e2SNikita Popov store i65 %r3, ptr %p 33486ed885SArthur Eubanks 34486ed885SArthur Eubanks ret void 35486ed885SArthur Eubanks} 36486ed885SArthur Eubanks 37486ed885SArthur Eubanks; CHECK-LABEL: shift_undef_256 38*04b944e2SNikita Popovdefine void @shift_undef_256(ptr %p) { 39486ed885SArthur Eubanks %r1 = lshr i256 2, 18446744073709551617 40395607afSJuneyoung Lee ; CHECK: store i256 poison 41*04b944e2SNikita Popov store i256 %r1, ptr %p 42486ed885SArthur Eubanks 43486ed885SArthur Eubanks %r2 = ashr i256 4, 18446744073709551618 44395607afSJuneyoung Lee ; CHECK: store i256 poison 45*04b944e2SNikita Popov store i256 %r2, ptr %p 46486ed885SArthur Eubanks 47486ed885SArthur Eubanks %r3 = shl i256 1, 18446744073709551619 48395607afSJuneyoung Lee ; CHECK: store i256 poison 49*04b944e2SNikita Popov store i256 %r3, ptr %p 50486ed885SArthur Eubanks 51486ed885SArthur Eubanks ret void 52486ed885SArthur Eubanks} 53486ed885SArthur Eubanks 54486ed885SArthur Eubanks; CHECK-LABEL: shift_undef_511 55*04b944e2SNikita Popovdefine void @shift_undef_511(ptr %p) { 56486ed885SArthur Eubanks %r1 = lshr i511 -1, 1208925819614629174706276 ; 2^80 + 100 57395607afSJuneyoung Lee ; CHECK: store i511 poison 58*04b944e2SNikita Popov store i511 %r1, ptr %p 59486ed885SArthur Eubanks 60486ed885SArthur Eubanks %r2 = ashr i511 -2, 1208925819614629174706200 61395607afSJuneyoung Lee ; CHECK: store i511 poison 62*04b944e2SNikita Popov store i511 %r2, ptr %p 63486ed885SArthur Eubanks 64486ed885SArthur Eubanks %r3 = shl i511 -3, 1208925819614629174706180 65395607afSJuneyoung Lee ; CHECK: store i511 poison 66*04b944e2SNikita Popov store i511 %r3, ptr %p 67486ed885SArthur Eubanks 68486ed885SArthur Eubanks ret void 69486ed885SArthur Eubanks} 70