brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · e253aea Raw
70 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 62; RUN: opt -passes='require<loops>,gvn' -S < %s | FileCheck %s3 4; This used to fail with ASAN enabled and if for some reason LoopInfo remained5; available during GVN.  In this case BasicAA will use LI but6; MergeBlockIntoPredecessor in GVN failed to update LI.7 8target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"9 10%struct.wibble.1028 = type { i32, i32, %struct.barney.881 }11%struct.barney.881 = type { %struct.zot.882 }12%struct.zot.882 = type { [64 x i8] }13 14; Function Attrs: argmemonly15declare void @snork.1(ptr) local_unnamed_addr #016 17define hidden zeroext i1 @eggs(ptr %arg, i1 %arg2, i1 %arg3) unnamed_addr align 2 {18; CHECK-LABEL: define hidden zeroext i1 @eggs(19; CHECK-SAME: ptr [[ARG:%.*]], i1 [[ARG2:%.*]], i1 [[ARG3:%.*]]) unnamed_addr align 2 {20; CHECK-NEXT:  [[BB:.*:]]21; CHECK-NEXT:    br i1 [[ARG2]], label %[[BB14:.*]], label %[[BB3:.*]]22; CHECK:       [[BB3]]:23; CHECK-NEXT:    [[TMP:%.*]] = getelementptr inbounds [[STRUCT_WIBBLE_1028:%.*]], ptr [[ARG]], i64 0, i32 2, i32 0, i32 0, i64 024; CHECK-NEXT:    br label %[[BB6:.*]]25; CHECK:       [[BB6]]:26; CHECK-NEXT:    br i1 [[ARG3]], label %[[BB11:.*]], label %[[BB8:.*]]27; CHECK:       [[BB8]]:28; CHECK-NEXT:    [[TMP9:%.*]] = load ptr, ptr [[TMP]], align 829; CHECK-NEXT:    br label %[[BB12:.*]]30; CHECK:       [[BB11]]:31; CHECK-NEXT:    br label %[[BB12]]32; CHECK:       [[BB12]]:33; CHECK-NEXT:    [[TMP13:%.*]] = phi ptr [ [[TMP]], %[[BB11]] ], [ [[TMP9]], %[[BB8]] ]34; CHECK-NEXT:    call void @snork.1(ptr [[TMP13]]) #[[ATTR1:[0-9]+]]35; CHECK-NEXT:    br label %[[BB6]]36; CHECK:       [[BB14]]:37; CHECK-NEXT:    ret i1 false38;39bb:40  br i1 %arg2, label %bb14, label %bb341 42bb3:                                              ; preds = %bb43  %tmp = getelementptr inbounds %struct.wibble.1028, ptr %arg, i64 0, i32 2, i32 0, i32 0, i64 044  br label %bb645 46bb6:                                              ; preds = %bb12, %bb347  br label %bb748 49bb7:                                              ; preds = %bb650  br i1 %arg3, label %bb11, label %bb851 52bb8:                                              ; preds = %bb753  %tmp9 = load ptr, ptr %tmp, align 854  br label %bb1255 56bb11:                                             ; preds = %bb757  br label %bb1258 59bb12:                                             ; preds = %bb11, %bb860  %tmp13 = phi ptr [ %tmp, %bb11 ], [ %tmp9, %bb8 ]61  call void @snork.1(ptr %tmp13) #162  br label %bb663 64bb14:                                             ; preds = %bb65  ret i1 false66}67 68attributes #0 = { argmemonly }69attributes #1 = { nounwind }70