78 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 52; RUN: opt < %s -passes=gvn -enable-pre -S | FileCheck %s --check-prefixes=CHECK,MDEP3; RUN: opt < %s -passes='gvn<memoryssa>' -enable-pre -S | FileCheck %s --check-prefixes=CHECK,MSSA4 5@H = common global i32 06@G = common global i32 07 8define i32 @test1(i1 %cond, i32 %v) nounwind {9; CHECK-LABEL: define i32 @test1(10; CHECK-SAME: i1 [[COND:%.*]], i32 [[V:%.*]]) #[[ATTR0:[0-9]+]] {11; CHECK-NEXT: [[ENTRY:.*:]]12; CHECK-NEXT: br i1 [[COND]], label %[[BB:.*]], label %[[BB1:.*]]13; CHECK: [[BB]]:14; CHECK-NEXT: [[ADD_1:%.*]] = add i32 [[V]], 4215; CHECK-NEXT: store i32 [[ADD_1]], ptr @G, align 416; CHECK-NEXT: br label %[[RETURN:.*]]17; CHECK: [[BB1]]:18; CHECK-NEXT: [[DOTPRE:%.*]] = add i32 [[V]], 4219; CHECK-NEXT: br label %[[RETURN]]20; CHECK: [[RETURN]]:21; CHECK-NEXT: [[ADD_2_PRE_PHI:%.*]] = phi i32 [ [[DOTPRE]], %[[BB1]] ], [ [[ADD_1]], %[[BB]] ]22; CHECK-NEXT: store i32 [[ADD_2_PRE_PHI]], ptr @H, align 423; CHECK-NEXT: ret i32 024;25entry:26 br i1 %cond, label %bb, label %bb127 28bb:29 %add.1 = add nuw nsw i32 %v, 4230 store i32 %add.1, ptr @G, align 431 br label %return32 33bb1:34 br label %return35 36return:37 %add.2 = add i32 %v, 4238 store i32 %add.2, ptr @H, align 439 ret i32 040}41 42define i32 @test2(i1 %cond, i32 %v) nounwind {43; CHECK-LABEL: define i32 @test2(44; CHECK-SAME: i1 [[COND:%.*]], i32 [[V:%.*]]) #[[ATTR0]] {45; CHECK-NEXT: [[ENTRY:.*:]]46; CHECK-NEXT: br i1 [[COND]], label %[[BB:.*]], label %[[BB1:.*]]47; CHECK: [[BB]]:48; CHECK-NEXT: [[ADD_1:%.*]] = add i32 [[V]], 4249; CHECK-NEXT: store i32 [[ADD_1]], ptr @G, align 450; CHECK-NEXT: br label %[[RETURN:.*]]51; CHECK: [[BB1]]:52; CHECK-NEXT: [[DOTPRE:%.*]] = add nuw nsw i32 [[V]], 4253; CHECK-NEXT: br label %[[RETURN]]54; CHECK: [[RETURN]]:55; CHECK-NEXT: [[ADD_2_PRE_PHI:%.*]] = phi i32 [ [[DOTPRE]], %[[BB1]] ], [ [[ADD_1]], %[[BB]] ]56; CHECK-NEXT: store i32 [[ADD_2_PRE_PHI]], ptr @H, align 457; CHECK-NEXT: ret i32 058;59entry:60 br i1 %cond, label %bb, label %bb161 62bb:63 %add.1 = add i32 %v, 4264 store i32 %add.1, ptr @G, align 465 br label %return66 67bb1:68 br label %return69 70return:71 %add.2 = add nuw nsw i32 %v, 4272 store i32 %add.2, ptr @H, align 473 ret i32 074}75;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:76; MDEP: {{.*}}77; MSSA: {{.*}}78