1 ; RUN: opt < %s -ipconstprop -S > %t
2 ;; Check that the 21 constants got propagated properly
3 ; RUN: cat %t | grep "%M = add i32 21, 21"
4 ;; Check that the second return values didn't get propagated
5 ; RUN: cat %t | grep "%N = add i32 %B, %D"
9 define internal %0 @foo(i1 %Q) {
10 br i1 %Q, label %T, label %F
13 %mrv = insertvalue %0 undef, i32 21, 0
14 %mrv1 = insertvalue %0 %mrv, i32 22, 1
18 %mrv2 = insertvalue %0 undef, i32 21, 0
19 %mrv3 = insertvalue %0 %mrv2, i32 23, 1
23 define internal %0 @bar(i1 %Q) {
24 %A = insertvalue %0 undef, i32 21, 0
25 br i1 %Q, label %T, label %F
28 %B = insertvalue %0 %A, i32 22, 1
32 %C = insertvalue %0 %A, i32 23, 1
36 define %0 @caller(i1 %Q) {
37 %X = call %0 @foo(i1 %Q)
38 %A = extractvalue %0 %X, 0
39 %B = extractvalue %0 %X, 1
40 %Y = call %0 @bar(i1 %Q)
41 %C = extractvalue %0 %Y, 0
42 %D = extractvalue %0 %Y, 1