81 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -passes=sccp -S | FileCheck %s3 4@Y = constant [6 x i101] [ i101 12, i101 123456789000000, i101 -12,5 i101 -123456789000000, i101 0,i101 9123456789000000]6 7define i101 @array() {8; CHECK-LABEL: @array(9; CHECK-NEXT: ret i101 12345678900000010;11 %A = getelementptr [6 x i101], ptr @Y, i32 0, i32 112 %B = load i101, ptr %A13 %D = and i101 %B, 114 %DD = or i101 %D, 115 %E = trunc i101 %DD to i3216 %F = getelementptr [6 x i101], ptr @Y, i32 0, i32 %E17 %G = load i101, ptr %F18 19 ret i101 %G20}21 22define i101 @large_aggregate() {23; CHECK-LABEL: @large_aggregate(24; CHECK-NEXT: [[D:%.*]] = and i101 undef, 125; CHECK-NEXT: [[DD:%.*]] = or i101 [[D]], 126; CHECK-NEXT: [[G:%.*]] = getelementptr i101, ptr getelementptr inbounds nuw (i8, ptr @Y, i64 80), i101 [[DD]]27; CHECK-NEXT: [[L3:%.*]] = load i101, ptr [[G]], align 428; CHECK-NEXT: ret i101 [[L3]]29;30 %B = load i101, ptr undef31 %D = and i101 %B, 132 %DD = or i101 %D, 133 %F = getelementptr [6 x i101], ptr @Y, i32 0, i32 534 %G = getelementptr i101, ptr %F, i101 %DD35 %L3 = load i101, ptr %G36 ret i101 %L337}38 39define i101 @large_aggregate_2() {40; CHECK-LABEL: @large_aggregate_2(41; CHECK-NEXT: [[D:%.*]] = and i101 undef, 142; CHECK-NEXT: [[DD:%.*]] = or i101 [[D]], 143; CHECK-NEXT: [[G:%.*]] = getelementptr i101, ptr getelementptr inbounds nuw (i8, ptr @Y, i64 80), i101 [[DD]]44; CHECK-NEXT: [[L3:%.*]] = load i101, ptr [[G]], align 445; CHECK-NEXT: ret i101 [[L3]]46;47 %D = and i101 undef, 148 %DD = or i101 %D, 149 %F = getelementptr [6 x i101], ptr @Y, i32 0, i32 550 %G = getelementptr i101, ptr %F, i101 %DD51 %L3 = load i101, ptr %G52 ret i101 %L353}54 55define void @index_too_large() {56; CHECK-LABEL: @index_too_large(57; CHECK-NEXT: store ptr getelementptr (i8, ptr @Y, i64 18014398509481952), ptr undef, align 858; CHECK-NEXT: ret void59;60 %ptr1 = getelementptr [6 x i101], ptr @Y, i32 0, i32 -161 %ptr2 = getelementptr i101, ptr %ptr1, i101 922449793676161843162 store ptr %ptr2, ptr undef63 ret void64}65 66; OSS-Fuzz #3919767; https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3919768@0 = external dso_local unnamed_addr constant [16 x i8]69define void @ossfuzz_39197() {70; CHECK-LABEL: @ossfuzz_39197(71; CHECK-NEXT: entry:72; CHECK-NEXT: ret void73;74entry:75 %B5 = or i72 0, 236118324143482260684776 %i = add nuw nsw i72 %B5, 077 %i1 = lshr i72 %i, 178 %i2 = getelementptr inbounds [4 x [4 x i8]], ptr @0, i72 0, i72 0, i72 %i179 ret void80}81