ret void
}
-
-define void @test6(i32* noalias %P) {
-; CHECK-LABEL: @test6(
-; CHECK-NEXT: br i1 true, label [[BB1:%.*]], label [[BB2:%.*]]
-; CHECK: bb1:
-; CHECK-NEXT: br label [[BB3:%.*]]
-; CHECK: bb2:
-; CHECK-NEXT: call void @unknown_func()
-; CHECK-NEXT: br label [[BB3]]
-; CHECK: bb3:
-; CHECK-NEXT: store i32 0, i32* [[P:%.*]]
-; CHECK-NEXT: ret void
-;
- store i32 0, i32* %P
- br i1 true, label %bb1, label %bb2
-bb1:
- br label %bb3
-bb2:
- call void @unknown_func()
- br label %bb3
-bb3:
- store i32 0, i32* %P
- ret void
-}
-
define void @test19(i32* noalias %P) {
; CHECK-LABEL: @test19(
; CHECK-NEXT: entry:
ret void
}
-
-define i32 @test22(i32* %P, i32* noalias %Q, i32* %R) {
-; CHECK-LABEL: @test22(
-; CHECK-NEXT: store i32 2, i32* [[P:%.*]]
-; CHECK-NEXT: store i32 3, i32* [[Q:%.*]]
-; CHECK-NEXT: [[L:%.*]] = load i32, i32* [[R:%.*]]
-; CHECK-NEXT: ret i32 [[L]]
-;
- store i32 1, i32* %Q
- store i32 2, i32* %P
- store i32 3, i32* %Q
- %l = load i32, i32* %R
- ret i32 %l
-}
-
-
-define void @test23(i32* noalias %P) {
-; CHECK-LABEL: @test23(
-; CHECK-NEXT: br i1 true, label [[BB1:%.*]], label [[BB2:%.*]]
-; CHECK: bb1:
-; CHECK-NEXT: br label [[BB3:%.*]]
-; CHECK: bb2:
-; CHECK-NEXT: call void @unknown_func()
-; CHECK-NEXT: br label [[BB3]]
-; CHECK: bb3:
-; CHECK-NEXT: store i32 0, i32* [[P:%.*]]
-; CHECK-NEXT: ret void
-;
- br i1 true, label %bb1, label %bb2
-bb1:
- store i32 0, i32* %P
- br label %bb3
-bb2:
- call void @unknown_func()
- br label %bb3
-bb3:
- store i32 0, i32* %P
- ret void
-}
-
-
-define void @test24(i32* noalias %P) {
-; CHECK-LABEL: @test24(
-; CHECK-NEXT: br i1 true, label [[BB2:%.*]], label [[BB1:%.*]]
-; CHECK: bb1:
-; CHECK-NEXT: br label [[BB3:%.*]]
-; CHECK: bb2:
-; CHECK-NEXT: call void @unknown_func()
-; CHECK-NEXT: br label [[BB3]]
-; CHECK: bb3:
-; CHECK-NEXT: store i32 0, i32* [[P:%.*]]
-; CHECK-NEXT: ret void
-;
- br i1 true, label %bb2, label %bb1
-bb1:
- store i32 0, i32* %P
- br label %bb3
-bb2:
- call void @unknown_func()
- br label %bb3
-bb3:
- store i32 0, i32* %P
- ret void
-}
-
define i8* @test26() {
; CHECK-LABEL: @test26(
; CHECK-NEXT: bb1:
ret void
}
-define i32 @test22(i32* %P, i32* noalias %Q, i32* %R) {
-; CHECK-LABEL: @test22(
-; CHECK-NEXT: store i32 2, i32* [[P:%.*]]
-; CHECK-NEXT: store i32 3, i32* [[Q:%.*]]
-; CHECK-NEXT: [[L:%.*]] = load i32, i32* [[R:%.*]]
-; CHECK-NEXT: ret i32 [[L]]
-;
- store i32 1, i32* %Q
- store i32 2, i32* %P
- store i32 3, i32* %Q
- %l = load i32, i32* %R
- ret i32 %l
-}
-
-
define void @test23(i32* noalias %P) {
; CHECK-LABEL: @test23(
; CHECK-NEXT: br i1 true, label [[BB1:%.*]], label [[BB2:%.*]]
store volatile i32 3, i32* %P, align 4
ret void
}
+
+define i32 @test48(i32* %P, i32* noalias %Q, i32* %R) {
+; CHECK-LABEL: @test48(
+; CHECK-NEXT: store i32 2, i32* [[P:%.*]], align 4
+; CHECK-NEXT: store i32 3, i32* [[Q:%.*]], align 4
+; CHECK-NEXT: [[L:%.*]] = load i32, i32* [[R:%.*]], align 4
+; CHECK-NEXT: ret i32 [[L]]
+;
+ store i32 1, i32* %Q
+ store i32 2, i32* %P
+ store i32 3, i32* %Q
+ %l = load i32, i32* %R
+ ret i32 %l
+}