14c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar; RUN: opt < %s -constprop -S | FileCheck %s
24c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar
34c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar; CHECK-LABEL: shift_undef_64
44c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainardefine void @shift_undef_64(i64* %p) {
54c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  %r1 = lshr i64 -1, 4294967296 ; 2^32
64c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  ; CHECK: store i64 undef
74c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  store i64 %r1, i64* %p
84c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar
94c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  %r2 = ashr i64 -1, 4294967297 ; 2^32 + 1
104c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  ; CHECK: store i64 undef
114c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  store i64 %r2, i64* %p
124c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar
134c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  %r3 = shl i64 -1, 4294967298 ; 2^32 + 2
144c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  ; CHECK: store i64 undef
154c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  store i64 %r3, i64* %p
164c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar
174c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  ret void
184c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar}
194c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar
204c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar; CHECK-LABEL: shift_undef_65
214c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainardefine void @shift_undef_65(i65* %p) {
224c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  %r1 = lshr i65 2, 18446744073709551617
234c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  ; CHECK: store i65 undef
244c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  store i65 %r1, i65* %p
254c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar
264c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  %r2 = ashr i65 4, 18446744073709551617
274c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  ; CHECK: store i65 undef
284c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  store i65 %r2, i65* %p
294c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar
304c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  %r3 = shl i65 1, 18446744073709551617
314c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  ; CHECK: store i65 undef
324c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  store i65 %r3, i65* %p
334c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar
344c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  ret void
354c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar}
364c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar
374c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar; CHECK-LABEL: shift_undef_256
384c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainardefine void @shift_undef_256(i256* %p) {
394c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  %r1 = lshr i256 2, 18446744073709551617
404c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  ; CHECK: store i256 undef
414c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  store i256 %r1, i256* %p
424c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar
434c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  %r2 = ashr i256 4, 18446744073709551618
444c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  ; CHECK: store i256 undef
454c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  store i256 %r2, i256* %p
464c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar
474c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  %r3 = shl i256 1, 18446744073709551619
484c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  ; CHECK: store i256 undef
494c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  store i256 %r3, i256* %p
504c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar
514c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  ret void
524c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar}
534c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar
544c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar; CHECK-LABEL: shift_undef_511
554c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainardefine void @shift_undef_511(i511* %p) {
564c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  %r1 = lshr i511 -1, 1208925819614629174706276 ; 2^80 + 100
574c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  ; CHECK: store i511 undef
584c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  store i511 %r1, i511* %p
594c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar
604c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  %r2 = ashr i511 -2, 1208925819614629174706200
614c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  ; CHECK: store i511 undef
624c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  store i511 %r2, i511* %p
634c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar
644c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  %r3 = shl i511 -3, 1208925819614629174706180
654c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  ; CHECK: store i511 undef
664c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  store i511 %r3, i511* %p
674c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar
684c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar  ret void
694c5e43da7792f75567b693105cc53e3f1992ad98Pirama Arumuga Nainar}
70