71 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 42; RUN: opt < %s -passes=newgvn -S | FileCheck %s3 4; CHECK-NOT: load5; CHECK-NOT: phi6 7define ptr @cat(ptr %s1, i1 %arg, i1 %arg2, i1 %arg3, ...) nounwind {8; CHECK-LABEL: define ptr @cat(9; CHECK-SAME: ptr [[S1:%.*]], i1 [[ARG:%.*]], i1 [[ARG2:%.*]], i1 [[ARG3:%.*]], ...) #[[ATTR0:[0-9]+]] {10; CHECK-NEXT: entry:11; CHECK-NEXT: br i1 [[ARG2]], label [[BB:%.*]], label [[BB3:%.*]]12; CHECK: bb:13; CHECK-NEXT: unreachable14; CHECK: bb3:15; CHECK-NEXT: store ptr undef, ptr undef, align 416; CHECK-NEXT: br i1 [[ARG3]], label [[BB5:%.*]], label [[BB6:%.*]]17; CHECK: bb5:18; CHECK-NEXT: unreachable19; CHECK: bb6:20; CHECK-NEXT: br label [[BB12:%.*]]21; CHECK: bb8:22; CHECK-NEXT: br i1 true, label [[BB9:%.*]], label [[BB10:%.*]]23; CHECK: bb9:24; CHECK-NEXT: br label [[BB11:%.*]]25; CHECK: bb10:26; CHECK-NEXT: store i8 poison, ptr null, align 127; CHECK-NEXT: br label [[BB11]]28; CHECK: bb11:29; CHECK-NEXT: br label [[BB12]]30; CHECK: bb12:31; CHECK-NEXT: br i1 [[ARG]], label [[BB8:%.*]], label [[BB13:%.*]]32; CHECK: bb13:33; CHECK-NEXT: ret ptr undef34;35entry:36 br i1 %arg2, label %bb, label %bb337 38bb: ; preds = %entry39 unreachable40 41bb3: ; preds = %entry42 store ptr undef, ptr undef, align 443 br i1 %arg3, label %bb5, label %bb644 45bb5: ; preds = %bb346 unreachable47 48bb6: ; preds = %bb349 br label %bb1250 51bb8: ; preds = %bb1252 br i1 %arg, label %bb9, label %bb1053 54bb9: ; preds = %bb855 %0 = load ptr, ptr undef, align 4 ; <ptr> [#uses=0]56 %1 = load ptr, ptr undef, align 4 ; <ptr> [#uses=0]57 br label %bb1158 59bb10: ; preds = %bb860 br label %bb1161 62bb11: ; preds = %bb10, %bb963 br label %bb1264 65bb12: ; preds = %bb11, %bb666 br i1 %arg, label %bb8, label %bb1367 68bb13: ; preds = %bb1269 ret ptr undef70}71