83 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -passes=sccp -S | FileCheck %s3 4define void @shift_undef_64(ptr %p) {5; CHECK-LABEL: @shift_undef_64(6; CHECK-NEXT: store i64 0, ptr [[P:%.*]], align 47; CHECK-NEXT: store i64 -1, ptr [[P]], align 48; CHECK-NEXT: [[R3:%.*]] = shl nuw nsw i64 -1, 42949672989; CHECK-NEXT: store i64 [[R3]], ptr [[P]], align 410; CHECK-NEXT: ret void11;12 %r1 = lshr i64 -1, 4294967296 ; 2^3213 store i64 %r1, ptr %p14 15 %r2 = ashr i64 -1, 4294967297 ; 2^32 + 116 store i64 %r2, ptr %p17 18 %r3 = shl i64 -1, 4294967298 ; 2^32 + 219 store i64 %r3, ptr %p20 21 ret void22}23 24define void @shift_undef_65(ptr %p) {25; CHECK-LABEL: @shift_undef_65(26; CHECK-NEXT: store i65 0, ptr [[P:%.*]], align 427; CHECK-NEXT: store i65 0, ptr [[P]], align 428; CHECK-NEXT: [[R3:%.*]] = shl nuw nsw i65 1, -1844674407370955161529; CHECK-NEXT: store i65 [[R3]], ptr [[P]], align 430; CHECK-NEXT: ret void31;32 %r1 = lshr i65 2, 1844674407370955161733 store i65 %r1, ptr %p34 35 %r2 = ashr i65 4, 1844674407370955161736 store i65 %r2, ptr %p37 38 %r3 = shl i65 1, 1844674407370955161739 store i65 %r3, ptr %p40 41 ret void42}43 44define void @shift_undef_256(ptr %p) {45; CHECK-LABEL: @shift_undef_256(46; CHECK-NEXT: store i256 0, ptr [[P:%.*]], align 447; CHECK-NEXT: store i256 0, ptr [[P]], align 448; CHECK-NEXT: [[R3:%.*]] = shl nuw nsw i256 1, 1844674407370955161949; CHECK-NEXT: store i256 [[R3]], ptr [[P]], align 450; CHECK-NEXT: ret void51;52 %r1 = lshr i256 2, 1844674407370955161753 store i256 %r1, ptr %p54 55 %r2 = ashr i256 4, 1844674407370955161856 store i256 %r2, ptr %p57 58 %r3 = shl i256 1, 1844674407370955161959 store i256 %r3, ptr %p60 61 ret void62}63 64define void @shift_undef_511(ptr %p) {65; CHECK-LABEL: @shift_undef_511(66; CHECK-NEXT: store i511 0, ptr [[P:%.*]], align 467; CHECK-NEXT: store i511 -1, ptr [[P]], align 468; CHECK-NEXT: [[R3:%.*]] = shl nuw nsw i511 -3, 120892581961462917470618069; CHECK-NEXT: store i511 [[R3]], ptr [[P]], align 470; CHECK-NEXT: ret void71;72 %r1 = lshr i511 -1, 1208925819614629174706276 ; 2^80 + 10073 store i511 %r1, ptr %p74 75 %r2 = ashr i511 -2, 120892581961462917470620076 store i511 %r2, ptr %p77 78 %r3 = shl i511 -3, 120892581961462917470618079 store i511 %r3, ptr %p80 81 ret void82}83