brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · 5f70572 Raw
60 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -passes=irce -S | FileCheck %s3 4; Reduced from https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=268325 6define void @scalar_after_vectorization_0() {7; CHECK-LABEL: @scalar_after_vectorization_0(8; CHECK-NEXT:  outer.ph:9; CHECK-NEXT:    [[B4:%.*]] = sub i64 9223372036854775807, -922337203685477580810; CHECK-NEXT:    [[B21:%.*]] = and i64 [[B4]], [[B4]]11; CHECK-NEXT:    [[B9:%.*]] = lshr i64 9223372036854775807, -112; CHECK-NEXT:    br label [[OUTER_BODY:%.*]]13; CHECK:       outer.body:14; CHECK-NEXT:    [[I:%.*]] = phi i64 [ 1, [[OUTER_PH:%.*]] ], [ [[I_NEXT:%.*]], [[INNER_END:%.*]] ]15; CHECK-NEXT:    [[T0:%.*]] = mul nuw nsw i64 [[I]], undef16; CHECK-NEXT:    br label [[INNER_BODY:%.*]]17; CHECK:       inner.body:18; CHECK-NEXT:    [[J:%.*]] = phi i64 [ 1, [[OUTER_BODY]] ], [ [[T1:%.*]], [[INNER_BODY]] ]19; CHECK-NEXT:    [[T1]] = add nuw nsw i64 [[J]], [[T0]]20; CHECK-NEXT:    [[B3:%.*]] = mul i64 [[T1]], undef21; CHECK-NEXT:    [[B13:%.*]] = mul i64 [[B3]], 429496729622; CHECK-NEXT:    [[C2:%.*]] = icmp slt i64 undef, [[B13]]23; CHECK-NEXT:    br i1 [[C2]], label [[INNER_BODY]], label [[INNER_END]]24; CHECK:       inner.end:25; CHECK-NEXT:    [[B16:%.*]] = urem i64 [[B4]], [[B9]]26; CHECK-NEXT:    [[I_NEXT]] = add i64 [[I]], [[B16]]27; CHECK-NEXT:    [[C:%.*]] = icmp ult i64 [[B21]], [[I_NEXT]]28; CHECK-NEXT:    br i1 [[C]], label [[OUTER_BODY]], label [[OUTER_END:%.*]]29; CHECK:       outer.end:30; CHECK-NEXT:    ret void31;32outer.ph:33  br label %outer.body34 35outer.body:                                       ; preds = %inner.end, %outer.ph36  %i = phi i64 [ 1, %outer.ph ], [ %i.next, %inner.end ]37  %t0 = mul nuw nsw i64 %i, undef38  br label %inner.body39 40inner.body:                                       ; preds = %inner.body, %outer.body41  %j = phi i64 [ 1, %outer.body ], [ %t1, %inner.body ]42  %t1 = add nuw nsw i64 %j, %t043  %B3 = mul i64 %t1, undef44  %B13 = mul i64 %B3, 429496729645  %C2 = icmp slt i64 undef, %B1346  br i1 %C2, label %inner.body, label %inner.end47 48inner.end:                                        ; preds = %inner.body49  %B4 = sub i64 9223372036854775807, -922337203685477580850  %B21 = and i64 %B4, %B451  %B9 = lshr i64 9223372036854775807, -152  %B16 = urem i64 %B4, %B953  %i.next = add i64 %i, %B1654  %C = icmp ult i64 %B21, %i.next55  br i1 %C, label %outer.body, label %outer.end56 57outer.end:                                        ; preds = %inner.end58  ret void59}60