; CHECK-NEXT: i8 97, label [[IF_THEN]]
; CHECK-NEXT: ]
; CHECK: if.then:
-; CHECK-NEXT: tail call void @foo1() [[ATTR2:#.*]]
+; CHECK-NEXT: tail call void @foo1() #[[ATTR2:[0-9]+]]
; CHECK-NEXT: ret void
; CHECK: if.end:
; CHECK-NEXT: ret void
; CHECK-NEXT: ]
; CHECK: if.then:
; CHECK-NEXT: [[A:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ 42, [[SWITCH_EARLY_TEST]] ], [ 42, [[N]] ], [ 42, [[SWITCH_EARLY_TEST]] ]
-; CHECK-NEXT: tail call void @foo1() [[ATTR2]]
+; CHECK-NEXT: tail call void @foo1() #[[ATTR2]]
; CHECK-NEXT: ret i32 [[A]]
; CHECK: if.end:
; CHECK-NEXT: ret i32 0
; CHECK-NEXT: i32 0, label [[F]]
; CHECK-NEXT: ]
; CHECK: T:
-; CHECK-NEXT: [[MERGE:%.*]] = phi i32 [ 123, [[SWITCH_EARLY_TEST]] ], [ 324, [[F]] ]
-; CHECK-NEXT: ret i32 [[MERGE]]
+; CHECK-NEXT: call void @foo1()
+; CHECK-NEXT: ret i32 123
; CHECK: F:
-; CHECK-NEXT: br label [[T]]
+; CHECK-NEXT: call void @foo2()
+; CHECK-NEXT: ret i32 324
;
%A = icmp ne i32 %mode, 0
%B = icmp ne i32 %mode, 51
%D = and i1 %C, %Cond
br i1 %D, label %T, label %F
T:
+ call void @foo1()
ret i32 123
F:
+ call void @foo2()
ret i32 324
}
; CHECK-NEXT: i32 0, label [[IF_THEN]]
; CHECK-NEXT: ]
; CHECK: if.then:
-; CHECK-NEXT: call void @foo1() [[ATTR3:#.*]]
+; CHECK-NEXT: call void @foo1() #[[ATTR3:[0-9]+]]
; CHECK-NEXT: br label [[IF_END]]
; CHECK: if.end:
; CHECK-NEXT: ret void
; CHECK-NEXT: i32 0, label [[IF_THEN]]
; CHECK-NEXT: ]
; CHECK: if.then:
-; CHECK-NEXT: call void @foo1() [[ATTR3]]
+; CHECK-NEXT: call void @foo1() #[[ATTR3]]
; CHECK-NEXT: br label [[IF_END]]
; CHECK: if.end:
; CHECK-NEXT: ret void
; CHECK-NEXT: i8 97, label [[IF_THEN]]
; CHECK-NEXT: ]
; CHECK: if.then:
-; CHECK-NEXT: tail call void @foo1() [[ATTR2:#.*]]
+; CHECK-NEXT: tail call void @foo1() #[[ATTR2:[0-9]+]]
; CHECK-NEXT: ret void
; CHECK: if.end:
; CHECK-NEXT: ret void
; CHECK-NEXT: ]
; CHECK: if.then:
; CHECK-NEXT: [[A:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ 42, [[SWITCH_EARLY_TEST]] ], [ 42, [[N]] ], [ 42, [[SWITCH_EARLY_TEST]] ]
-; CHECK-NEXT: tail call void @foo1() [[ATTR2]]
+; CHECK-NEXT: tail call void @foo1() #[[ATTR2]]
; CHECK-NEXT: ret i32 [[A]]
; CHECK: if.end:
; CHECK-NEXT: ret i32 0
; CHECK-NEXT: i32 0, label [[F]]
; CHECK-NEXT: ]
; CHECK: T:
-; CHECK-NEXT: [[MERGE:%.*]] = phi i32 [ 123, [[SWITCH_EARLY_TEST]] ], [ 324, [[F]] ]
-; CHECK-NEXT: ret i32 [[MERGE]]
+; CHECK-NEXT: call void @foo1()
+; CHECK-NEXT: ret i32 123
; CHECK: F:
-; CHECK-NEXT: br label [[T]]
+; CHECK-NEXT: call void @foo2()
+; CHECK-NEXT: ret i32 324
;
%A = icmp ne i32 %mode, 0
%B = icmp ne i32 %mode, 51
%D = and i1 %C, %Cond
br i1 %D, label %T, label %F
T:
+ call void @foo1()
ret i32 123
F:
+ call void @foo2()
ret i32 324
}
; CHECK-NEXT: i32 0, label [[F]]
; CHECK-NEXT: ]
; CHECK: T:
-; CHECK-NEXT: [[MERGE:%.*]] = phi i32 [ 123, [[SWITCH_EARLY_TEST]] ], [ 324, [[F]] ]
-; CHECK-NEXT: ret i32 [[MERGE]]
+; CHECK-NEXT: call void @foo1()
+; CHECK-NEXT: ret i32 123
; CHECK: F:
-; CHECK-NEXT: br label [[T]]
+; CHECK-NEXT: call void @foo2()
+; CHECK-NEXT: ret i32 324
;
%A = icmp ne i32 %mode, 0
%B = icmp ne i32 %mode, 51
%D = select i1 %C, i1 %Cond, i1 false
br i1 %D, label %T, label %F
T:
+ call void @foo1()
ret i32 123
F:
+ call void @foo2()
ret i32 324
}
; CHECK-NEXT: i32 0, label [[F]]
; CHECK-NEXT: ]
; CHECK: T:
-; CHECK-NEXT: [[MERGE:%.*]] = phi i32 [ 123, [[SWITCH_EARLY_TEST]] ], [ 324, [[F]] ]
-; CHECK-NEXT: ret i32 [[MERGE]]
+; CHECK-NEXT: call void @foo1()
+; CHECK-NEXT: ret i32 123
; CHECK: F:
-; CHECK-NEXT: br label [[T]]
+; CHECK-NEXT: call void @foo2()
+; CHECK-NEXT: ret i32 324
;
%A = icmp ne i32 %mode, 0
%B = icmp ne i32 %mode, 51
%D = and i1 %C, %Cond
br i1 %D, label %T, label %F
T:
+ call void @foo1()
ret i32 123
F:
+ call void @foo2()
ret i32 324
}
; CHECK-NEXT: i32 0, label [[F]]
; CHECK-NEXT: ]
; CHECK: T:
-; CHECK-NEXT: [[MERGE:%.*]] = phi i32 [ 123, [[SWITCH_EARLY_TEST]] ], [ 324, [[F]] ]
-; CHECK-NEXT: ret i32 [[MERGE]]
+; CHECK-NEXT: call void @foo1()
+; CHECK-NEXT: ret i32 123
; CHECK: F:
-; CHECK-NEXT: br label [[T]]
+; CHECK-NEXT: call void @foo2()
+; CHECK-NEXT: ret i32 324
;
%A = icmp ne i32 %mode, 0
%B = icmp ne i32 %mode, 51
%D = select i1 %C, i1 %Cond, i1 false
br i1 %D, label %T, label %F
T:
+ call void @foo1()
ret i32 123
F:
+ call void @foo2()
ret i32 324
}
define void @test12() nounwind {
; CHECK-LABEL: @test12(
; CHECK-NEXT: entry:
-; CHECK-NEXT: [[DOTOLD:%.*]] = icmp eq i32 undef, undef
-; CHECK-NEXT: br i1 [[DOTOLD]], label [[BB55_US_US:%.*]], label [[MALFORMED:%.*]]
+; CHECK-NEXT: [[A_OLD:%.*]] = icmp eq i32 undef, undef
+; CHECK-NEXT: br i1 [[A_OLD]], label [[BB55_US_US:%.*]], label [[MALFORMED:%.*]]
; CHECK: bb55.us.us:
; CHECK-NEXT: [[B:%.*]] = icmp ugt i32 undef, undef
; CHECK-NEXT: [[A:%.*]] = icmp eq i32 undef, undef
; CHECK-NEXT: i32 0, label [[IF_THEN]]
; CHECK-NEXT: ]
; CHECK: if.then:
-; CHECK-NEXT: call void @foo1() [[ATTR3:#.*]]
+; CHECK-NEXT: call void @foo1() #[[ATTR3:[0-9]+]]
; CHECK-NEXT: br label [[IF_END]]
; CHECK: if.end:
; CHECK-NEXT: ret void
; CHECK-NEXT: i32 0, label [[IF_THEN]]
; CHECK-NEXT: ]
; CHECK: if.then:
-; CHECK-NEXT: call void @foo1() [[ATTR3]]
+; CHECK-NEXT: call void @foo1() #[[ATTR3]]
; CHECK-NEXT: br label [[IF_END]]
; CHECK: if.end:
; CHECK-NEXT: ret void