11dd85e9dSSam Parker; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 2*d1d12935SRoman Lebedev; RUN: opt -mtriple=thumbv8m.main < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S -two-entry-phi-node-folding-threshold=4 | FileCheck %s --check-prefixes=CHECK-TWO-FOLD-4,CHECK-V8M-TWO-FOLD-4 3*d1d12935SRoman Lebedev; RUN: opt -mtriple=armv8a < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S -two-entry-phi-node-folding-threshold=4 | FileCheck %s --check-prefixes=CHECK-TWO-FOLD-4,CHECK-V8A-TWO-FOLD-4 4*d1d12935SRoman Lebedev; RUN: opt -mtriple=thumbv8m.main < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S -two-entry-phi-node-folding-threshold=5 | FileCheck %s --check-prefixes=CHECK-TWO-FOLD-5,CHECK-V8M-TWO-FOLD-5 5*d1d12935SRoman Lebedev; RUN: opt -mtriple=armv8a < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S -two-entry-phi-node-folding-threshold=5 | FileCheck %s --check-prefixes=CHECK-TWO-FOLD-5,CHECK-V8A-TWO-FOLD-5 6*d1d12935SRoman Lebedev; RUN: opt -mtriple=thumbv8m.main < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S -two-entry-phi-node-folding-threshold=6 | FileCheck %s --check-prefixes=CHECK-TWO-FOLD-6,CHECK-V8M-TWO-FOLD-6 7*d1d12935SRoman Lebedev; RUN: opt -mtriple=armv8a < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S -two-entry-phi-node-folding-threshold=6 | FileCheck %s --check-prefixes=CHECK-TWO-FOLD-6,CHECK-V8A-TWO-FOLD-6 81dd85e9dSSam Parker 91dd85e9dSSam Parkerdefine i32 @test_i32(i1 %a, i1 %b, i32 %i, i32 %j, i32 %k) { 105c987212SSimon Pilgrim; CHECK-TWO-FOLD-4-LABEL: @test_i32( 115c987212SSimon Pilgrim; CHECK-TWO-FOLD-4-NEXT: entry: 125c987212SSimon Pilgrim; CHECK-TWO-FOLD-4-NEXT: br i1 [[A:%.*]], label [[M:%.*]], label [[O:%.*]] 135c987212SSimon Pilgrim; CHECK-TWO-FOLD-4: O: 145c987212SSimon Pilgrim; CHECK-TWO-FOLD-4-NEXT: [[IAJ:%.*]] = add i32 [[I:%.*]], [[J:%.*]] 155c987212SSimon Pilgrim; CHECK-TWO-FOLD-4-NEXT: [[IAJAK:%.*]] = add i32 [[IAJ]], [[K:%.*]] 165c987212SSimon Pilgrim; CHECK-TWO-FOLD-4-NEXT: [[IXJ:%.*]] = xor i32 [[I]], [[J]] 175c987212SSimon Pilgrim; CHECK-TWO-FOLD-4-NEXT: [[IXJXK:%.*]] = xor i32 [[IXJ]], [[K]] 185c987212SSimon Pilgrim; CHECK-TWO-FOLD-4-NEXT: [[WP:%.*]] = select i1 [[B:%.*]], i32 [[IAJAK]], i32 [[IXJXK]] 195c987212SSimon Pilgrim; CHECK-TWO-FOLD-4-NEXT: [[WP2:%.*]] = add i32 [[WP]], [[WP]] 205c987212SSimon Pilgrim; CHECK-TWO-FOLD-4-NEXT: br label [[M]] 215c987212SSimon Pilgrim; CHECK-TWO-FOLD-4: M: 225c987212SSimon Pilgrim; CHECK-TWO-FOLD-4-NEXT: [[W:%.*]] = phi i32 [ [[WP2]], [[O]] ], [ 2, [[ENTRY:%.*]] ] 235c987212SSimon Pilgrim; CHECK-TWO-FOLD-4-NEXT: [[R:%.*]] = add i32 [[W]], 1 245c987212SSimon Pilgrim; CHECK-TWO-FOLD-4-NEXT: ret i32 [[R]] 251dd85e9dSSam Parker; 265c987212SSimon Pilgrim; CHECK-TWO-FOLD-5-LABEL: @test_i32( 275c987212SSimon Pilgrim; CHECK-TWO-FOLD-5-NEXT: entry: 285c987212SSimon Pilgrim; CHECK-TWO-FOLD-5-NEXT: br i1 [[A:%.*]], label [[M:%.*]], label [[O:%.*]] 295c987212SSimon Pilgrim; CHECK-TWO-FOLD-5: O: 305c987212SSimon Pilgrim; CHECK-TWO-FOLD-5-NEXT: [[IAJ:%.*]] = add i32 [[I:%.*]], [[J:%.*]] 315c987212SSimon Pilgrim; CHECK-TWO-FOLD-5-NEXT: [[IAJAK:%.*]] = add i32 [[IAJ]], [[K:%.*]] 325c987212SSimon Pilgrim; CHECK-TWO-FOLD-5-NEXT: [[IXJ:%.*]] = xor i32 [[I]], [[J]] 335c987212SSimon Pilgrim; CHECK-TWO-FOLD-5-NEXT: [[IXJXK:%.*]] = xor i32 [[IXJ]], [[K]] 345c987212SSimon Pilgrim; CHECK-TWO-FOLD-5-NEXT: [[WP:%.*]] = select i1 [[B:%.*]], i32 [[IAJAK]], i32 [[IXJXK]] 355c987212SSimon Pilgrim; CHECK-TWO-FOLD-5-NEXT: [[WP2:%.*]] = add i32 [[WP]], [[WP]] 365c987212SSimon Pilgrim; CHECK-TWO-FOLD-5-NEXT: br label [[M]] 375c987212SSimon Pilgrim; CHECK-TWO-FOLD-5: M: 385c987212SSimon Pilgrim; CHECK-TWO-FOLD-5-NEXT: [[W:%.*]] = phi i32 [ [[WP2]], [[O]] ], [ 2, [[ENTRY:%.*]] ] 395c987212SSimon Pilgrim; CHECK-TWO-FOLD-5-NEXT: [[R:%.*]] = add i32 [[W]], 1 405c987212SSimon Pilgrim; CHECK-TWO-FOLD-5-NEXT: ret i32 [[R]] 411dd85e9dSSam Parker; 425c987212SSimon Pilgrim; CHECK-TWO-FOLD-6-LABEL: @test_i32( 435c987212SSimon Pilgrim; CHECK-TWO-FOLD-6-NEXT: entry: 445c987212SSimon Pilgrim; CHECK-TWO-FOLD-6-NEXT: [[IAJ:%.*]] = add i32 [[I:%.*]], [[J:%.*]] 455c987212SSimon Pilgrim; CHECK-TWO-FOLD-6-NEXT: [[IAJAK:%.*]] = add i32 [[IAJ]], [[K:%.*]] 465c987212SSimon Pilgrim; CHECK-TWO-FOLD-6-NEXT: [[IXJ:%.*]] = xor i32 [[I]], [[J]] 475c987212SSimon Pilgrim; CHECK-TWO-FOLD-6-NEXT: [[IXJXK:%.*]] = xor i32 [[IXJ]], [[K]] 485c987212SSimon Pilgrim; CHECK-TWO-FOLD-6-NEXT: [[WP:%.*]] = select i1 [[B:%.*]], i32 [[IAJAK]], i32 [[IXJXK]] 495c987212SSimon Pilgrim; CHECK-TWO-FOLD-6-NEXT: [[WP2:%.*]] = add i32 [[WP]], [[WP]] 505c987212SSimon Pilgrim; CHECK-TWO-FOLD-6-NEXT: [[W:%.*]] = select i1 [[A:%.*]], i32 2, i32 [[WP2]] 515c987212SSimon Pilgrim; CHECK-TWO-FOLD-6-NEXT: [[R:%.*]] = add i32 [[W]], 1 525c987212SSimon Pilgrim; CHECK-TWO-FOLD-6-NEXT: ret i32 [[R]] 531dd85e9dSSam Parker; 541dd85e9dSSam Parkerentry: 551dd85e9dSSam Parker br i1 %a, label %M, label %O 561dd85e9dSSam ParkerO: 571dd85e9dSSam Parker br i1 %b, label %P, label %Q 581dd85e9dSSam ParkerP: 591dd85e9dSSam Parker %iaj = add i32 %i, %j 601dd85e9dSSam Parker %iajak = add i32 %iaj, %k 611dd85e9dSSam Parker br label %N 621dd85e9dSSam ParkerQ: 631dd85e9dSSam Parker %ixj = xor i32 %i, %j 641dd85e9dSSam Parker %ixjxk = xor i32 %ixj, %k 651dd85e9dSSam Parker br label %N 661dd85e9dSSam ParkerN: 671dd85e9dSSam Parker %Wp = phi i32 [ %iajak, %P ], [ %ixjxk, %Q ] 681dd85e9dSSam Parker %Wp2 = add i32 %Wp, %Wp 691dd85e9dSSam Parker br label %M 701dd85e9dSSam ParkerM: 711dd85e9dSSam Parker %W = phi i32 [ %Wp2, %N ], [ 2, %entry ] 721dd85e9dSSam Parker %R = add i32 %W, 1 731dd85e9dSSam Parker ret i32 %R 741dd85e9dSSam Parker} 751dd85e9dSSam Parker 761dd85e9dSSam Parkerdefine i32 @test_i32_minsize(i1 %a, i1 %b, i32 %i, i32 %j, i32 %k) #0 { 775c987212SSimon Pilgrim; CHECK-TWO-FOLD-4-LABEL: @test_i32_minsize( 785c987212SSimon Pilgrim; CHECK-TWO-FOLD-4-NEXT: entry: 795c987212SSimon Pilgrim; CHECK-TWO-FOLD-4-NEXT: br i1 [[A:%.*]], label [[M:%.*]], label [[O:%.*]] 805c987212SSimon Pilgrim; CHECK-TWO-FOLD-4: O: 815c987212SSimon Pilgrim; CHECK-TWO-FOLD-4-NEXT: [[IAJ:%.*]] = add i32 [[I:%.*]], [[J:%.*]] 825c987212SSimon Pilgrim; CHECK-TWO-FOLD-4-NEXT: [[IAJAK:%.*]] = add i32 [[IAJ]], [[K:%.*]] 835c987212SSimon Pilgrim; CHECK-TWO-FOLD-4-NEXT: [[IXJ:%.*]] = xor i32 [[I]], [[J]] 845c987212SSimon Pilgrim; CHECK-TWO-FOLD-4-NEXT: [[IXJXK:%.*]] = xor i32 [[IXJ]], [[K]] 855c987212SSimon Pilgrim; CHECK-TWO-FOLD-4-NEXT: [[WP:%.*]] = select i1 [[B:%.*]], i32 [[IAJAK]], i32 [[IXJXK]] 865c987212SSimon Pilgrim; CHECK-TWO-FOLD-4-NEXT: [[WP2:%.*]] = add i32 [[WP]], [[WP]] 875c987212SSimon Pilgrim; CHECK-TWO-FOLD-4-NEXT: br label [[M]] 885c987212SSimon Pilgrim; CHECK-TWO-FOLD-4: M: 895c987212SSimon Pilgrim; CHECK-TWO-FOLD-4-NEXT: [[W:%.*]] = phi i32 [ [[WP2]], [[O]] ], [ 2, [[ENTRY:%.*]] ] 905c987212SSimon Pilgrim; CHECK-TWO-FOLD-4-NEXT: [[R:%.*]] = add i32 [[W]], 1 915c987212SSimon Pilgrim; CHECK-TWO-FOLD-4-NEXT: ret i32 [[R]] 921dd85e9dSSam Parker; 935c987212SSimon Pilgrim; CHECK-TWO-FOLD-5-LABEL: @test_i32_minsize( 945c987212SSimon Pilgrim; CHECK-TWO-FOLD-5-NEXT: entry: 955c987212SSimon Pilgrim; CHECK-TWO-FOLD-5-NEXT: br i1 [[A:%.*]], label [[M:%.*]], label [[O:%.*]] 965c987212SSimon Pilgrim; CHECK-TWO-FOLD-5: O: 975c987212SSimon Pilgrim; CHECK-TWO-FOLD-5-NEXT: [[IAJ:%.*]] = add i32 [[I:%.*]], [[J:%.*]] 985c987212SSimon Pilgrim; CHECK-TWO-FOLD-5-NEXT: [[IAJAK:%.*]] = add i32 [[IAJ]], [[K:%.*]] 995c987212SSimon Pilgrim; CHECK-TWO-FOLD-5-NEXT: [[IXJ:%.*]] = xor i32 [[I]], [[J]] 1005c987212SSimon Pilgrim; CHECK-TWO-FOLD-5-NEXT: [[IXJXK:%.*]] = xor i32 [[IXJ]], [[K]] 1015c987212SSimon Pilgrim; CHECK-TWO-FOLD-5-NEXT: [[WP:%.*]] = select i1 [[B:%.*]], i32 [[IAJAK]], i32 [[IXJXK]] 1025c987212SSimon Pilgrim; CHECK-TWO-FOLD-5-NEXT: [[WP2:%.*]] = add i32 [[WP]], [[WP]] 1035c987212SSimon Pilgrim; CHECK-TWO-FOLD-5-NEXT: br label [[M]] 1045c987212SSimon Pilgrim; CHECK-TWO-FOLD-5: M: 1055c987212SSimon Pilgrim; CHECK-TWO-FOLD-5-NEXT: [[W:%.*]] = phi i32 [ [[WP2]], [[O]] ], [ 2, [[ENTRY:%.*]] ] 1065c987212SSimon Pilgrim; CHECK-TWO-FOLD-5-NEXT: [[R:%.*]] = add i32 [[W]], 1 1075c987212SSimon Pilgrim; CHECK-TWO-FOLD-5-NEXT: ret i32 [[R]] 1081dd85e9dSSam Parker; 1095c987212SSimon Pilgrim; CHECK-TWO-FOLD-6-LABEL: @test_i32_minsize( 1105c987212SSimon Pilgrim; CHECK-TWO-FOLD-6-NEXT: entry: 1115c987212SSimon Pilgrim; CHECK-TWO-FOLD-6-NEXT: [[IAJ:%.*]] = add i32 [[I:%.*]], [[J:%.*]] 1125c987212SSimon Pilgrim; CHECK-TWO-FOLD-6-NEXT: [[IAJAK:%.*]] = add i32 [[IAJ]], [[K:%.*]] 1135c987212SSimon Pilgrim; CHECK-TWO-FOLD-6-NEXT: [[IXJ:%.*]] = xor i32 [[I]], [[J]] 1145c987212SSimon Pilgrim; CHECK-TWO-FOLD-6-NEXT: [[IXJXK:%.*]] = xor i32 [[IXJ]], [[K]] 1155c987212SSimon Pilgrim; CHECK-TWO-FOLD-6-NEXT: [[WP:%.*]] = select i1 [[B:%.*]], i32 [[IAJAK]], i32 [[IXJXK]] 1165c987212SSimon Pilgrim; CHECK-TWO-FOLD-6-NEXT: [[WP2:%.*]] = add i32 [[WP]], [[WP]] 1175c987212SSimon Pilgrim; CHECK-TWO-FOLD-6-NEXT: [[W:%.*]] = select i1 [[A:%.*]], i32 2, i32 [[WP2]] 1185c987212SSimon Pilgrim; CHECK-TWO-FOLD-6-NEXT: [[R:%.*]] = add i32 [[W]], 1 1195c987212SSimon Pilgrim; CHECK-TWO-FOLD-6-NEXT: ret i32 [[R]] 1201dd85e9dSSam Parker; 1211dd85e9dSSam Parkerentry: 1221dd85e9dSSam Parker br i1 %a, label %M, label %O 1231dd85e9dSSam ParkerO: 1241dd85e9dSSam Parker br i1 %b, label %P, label %Q 1251dd85e9dSSam ParkerP: 1261dd85e9dSSam Parker %iaj = add i32 %i, %j 1271dd85e9dSSam Parker %iajak = add i32 %iaj, %k 1281dd85e9dSSam Parker br label %N 1291dd85e9dSSam ParkerQ: 1301dd85e9dSSam Parker %ixj = xor i32 %i, %j 1311dd85e9dSSam Parker %ixjxk = xor i32 %ixj, %k 1321dd85e9dSSam Parker br label %N 1331dd85e9dSSam ParkerN: 1341dd85e9dSSam Parker %Wp = phi i32 [ %iajak, %P ], [ %ixjxk, %Q ] 1351dd85e9dSSam Parker %Wp2 = add i32 %Wp, %Wp 1361dd85e9dSSam Parker br label %M 1371dd85e9dSSam ParkerM: 1381dd85e9dSSam Parker %W = phi i32 [ %Wp2, %N ], [ 2, %entry ] 1391dd85e9dSSam Parker %R = add i32 %W, 1 1401dd85e9dSSam Parker ret i32 %R 1411dd85e9dSSam Parker} 1421dd85e9dSSam Parker 1431dd85e9dSSam Parkerdefine i64 @test_i64(i1 %a, i1 %b, i64 %i, i64 %j, i64 %k) { 1441dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-4-LABEL: @test_i64( 1451dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-4-NEXT: entry: 1461dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-4-NEXT: br i1 [[A:%.*]], label [[M:%.*]], label [[O:%.*]] 1471dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-4: O: 148c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-4-NEXT: br i1 [[B:%.*]], label [[P:%.*]], label [[Q:%.*]] 149c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-4: P: 1501dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-4-NEXT: [[IAJ:%.*]] = add i64 [[I:%.*]], [[J:%.*]] 1511dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-4-NEXT: [[IAJAK:%.*]] = add i64 [[IAJ]], [[K:%.*]] 152c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-4-NEXT: br label [[N:%.*]] 153c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-4: Q: 1541dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-4-NEXT: [[IXJ:%.*]] = xor i64 [[I]], [[J]] 1551dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-4-NEXT: [[IXJXK:%.*]] = xor i64 [[IXJ]], [[K]] 156c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-4-NEXT: br label [[N]] 157c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-4: N: 158c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-4-NEXT: [[WP:%.*]] = phi i64 [ [[IAJAK]], [[P]] ], [ [[IXJXK]], [[Q]] ] 1591dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-4-NEXT: [[WP2:%.*]] = add i64 [[WP]], [[WP]] 1601dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-4-NEXT: br label [[M]] 1611dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-4: M: 162c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-4-NEXT: [[W:%.*]] = phi i64 [ [[WP2]], [[N]] ], [ 2, [[ENTRY:%.*]] ] 1631dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-4-NEXT: [[R:%.*]] = add i64 [[W]], 1 1641dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-4-NEXT: ret i64 [[R]] 1651dd85e9dSSam Parker; 1661dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4-LABEL: @test_i64( 1671dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4-NEXT: entry: 1681dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4-NEXT: br i1 [[A:%.*]], label [[M:%.*]], label [[O:%.*]] 1691dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4: O: 1701dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4-NEXT: [[IAJ:%.*]] = add i64 [[I:%.*]], [[J:%.*]] 1711dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4-NEXT: [[IAJAK:%.*]] = add i64 [[IAJ]], [[K:%.*]] 1721dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4-NEXT: [[IXJ:%.*]] = xor i64 [[I]], [[J]] 1731dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4-NEXT: [[IXJXK:%.*]] = xor i64 [[IXJ]], [[K]] 1741dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4-NEXT: [[WP:%.*]] = select i1 [[B:%.*]], i64 [[IAJAK]], i64 [[IXJXK]] 1751dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4-NEXT: [[WP2:%.*]] = add i64 [[WP]], [[WP]] 1761dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4-NEXT: br label [[M]] 1771dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4: M: 1781dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4-NEXT: [[W:%.*]] = phi i64 [ [[WP2]], [[O]] ], [ 2, [[ENTRY:%.*]] ] 1791dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4-NEXT: [[R:%.*]] = add i64 [[W]], 1 1801dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4-NEXT: ret i64 [[R]] 1811dd85e9dSSam Parker; 1821dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-5-LABEL: @test_i64( 1831dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-5-NEXT: entry: 1841dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-5-NEXT: br i1 [[A:%.*]], label [[M:%.*]], label [[O:%.*]] 1851dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-5: O: 186c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-5-NEXT: br i1 [[B:%.*]], label [[P:%.*]], label [[Q:%.*]] 187c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-5: P: 1881dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-5-NEXT: [[IAJ:%.*]] = add i64 [[I:%.*]], [[J:%.*]] 1891dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-5-NEXT: [[IAJAK:%.*]] = add i64 [[IAJ]], [[K:%.*]] 190c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-5-NEXT: br label [[N:%.*]] 191c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-5: Q: 1921dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-5-NEXT: [[IXJ:%.*]] = xor i64 [[I]], [[J]] 1931dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-5-NEXT: [[IXJXK:%.*]] = xor i64 [[IXJ]], [[K]] 194c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-5-NEXT: br label [[N]] 195c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-5: N: 196c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-5-NEXT: [[WP:%.*]] = phi i64 [ [[IAJAK]], [[P]] ], [ [[IXJXK]], [[Q]] ] 1971dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-5-NEXT: [[WP2:%.*]] = add i64 [[WP]], [[WP]] 1981dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-5-NEXT: br label [[M]] 1991dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-5: M: 200c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-5-NEXT: [[W:%.*]] = phi i64 [ [[WP2]], [[N]] ], [ 2, [[ENTRY:%.*]] ] 2011dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-5-NEXT: [[R:%.*]] = add i64 [[W]], 1 2021dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-5-NEXT: ret i64 [[R]] 2031dd85e9dSSam Parker; 2041dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5-LABEL: @test_i64( 2051dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5-NEXT: entry: 2061dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5-NEXT: br i1 [[A:%.*]], label [[M:%.*]], label [[O:%.*]] 2071dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5: O: 2081dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5-NEXT: [[IAJ:%.*]] = add i64 [[I:%.*]], [[J:%.*]] 2091dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5-NEXT: [[IAJAK:%.*]] = add i64 [[IAJ]], [[K:%.*]] 2101dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5-NEXT: [[IXJ:%.*]] = xor i64 [[I]], [[J]] 2111dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5-NEXT: [[IXJXK:%.*]] = xor i64 [[IXJ]], [[K]] 2121dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5-NEXT: [[WP:%.*]] = select i1 [[B:%.*]], i64 [[IAJAK]], i64 [[IXJXK]] 2131dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5-NEXT: [[WP2:%.*]] = add i64 [[WP]], [[WP]] 2141dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5-NEXT: br label [[M]] 2151dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5: M: 2161dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5-NEXT: [[W:%.*]] = phi i64 [ [[WP2]], [[O]] ], [ 2, [[ENTRY:%.*]] ] 2171dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5-NEXT: [[R:%.*]] = add i64 [[W]], 1 2181dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5-NEXT: ret i64 [[R]] 2191dd85e9dSSam Parker; 2201dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-6-LABEL: @test_i64( 2211dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-6-NEXT: entry: 222c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-6-NEXT: br i1 [[A:%.*]], label [[M:%.*]], label [[O:%.*]] 223c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-6: O: 224c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-6-NEXT: br i1 [[B:%.*]], label [[P:%.*]], label [[Q:%.*]] 225c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-6: P: 2261dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-6-NEXT: [[IAJ:%.*]] = add i64 [[I:%.*]], [[J:%.*]] 2271dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-6-NEXT: [[IAJAK:%.*]] = add i64 [[IAJ]], [[K:%.*]] 228c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-6-NEXT: br label [[N:%.*]] 229c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-6: Q: 2301dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-6-NEXT: [[IXJ:%.*]] = xor i64 [[I]], [[J]] 2311dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-6-NEXT: [[IXJXK:%.*]] = xor i64 [[IXJ]], [[K]] 232c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-6-NEXT: br label [[N]] 233c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-6: N: 234c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-6-NEXT: [[WP:%.*]] = phi i64 [ [[IAJAK]], [[P]] ], [ [[IXJXK]], [[Q]] ] 2351dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-6-NEXT: [[WP2:%.*]] = add i64 [[WP]], [[WP]] 236c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-6-NEXT: br label [[M]] 237c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-6: M: 238c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-6-NEXT: [[W:%.*]] = phi i64 [ [[WP2]], [[N]] ], [ 2, [[ENTRY:%.*]] ] 2391dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-6-NEXT: [[R:%.*]] = add i64 [[W]], 1 2401dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-6-NEXT: ret i64 [[R]] 2411dd85e9dSSam Parker; 2421dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-6-LABEL: @test_i64( 2431dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-6-NEXT: entry: 2441dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-6-NEXT: [[IAJ:%.*]] = add i64 [[I:%.*]], [[J:%.*]] 2451dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-6-NEXT: [[IAJAK:%.*]] = add i64 [[IAJ]], [[K:%.*]] 2461dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-6-NEXT: [[IXJ:%.*]] = xor i64 [[I]], [[J]] 2471dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-6-NEXT: [[IXJXK:%.*]] = xor i64 [[IXJ]], [[K]] 2481dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-6-NEXT: [[WP:%.*]] = select i1 [[B:%.*]], i64 [[IAJAK]], i64 [[IXJXK]] 2491dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-6-NEXT: [[WP2:%.*]] = add i64 [[WP]], [[WP]] 2501dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-6-NEXT: [[W:%.*]] = select i1 [[A:%.*]], i64 2, i64 [[WP2]] 2511dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-6-NEXT: [[R:%.*]] = add i64 [[W]], 1 2521dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-6-NEXT: ret i64 [[R]] 2531dd85e9dSSam Parker; 2541dd85e9dSSam Parkerentry: 2551dd85e9dSSam Parker br i1 %a, label %M, label %O 2561dd85e9dSSam ParkerO: 2571dd85e9dSSam Parker br i1 %b, label %P, label %Q 2581dd85e9dSSam ParkerP: 2591dd85e9dSSam Parker %iaj = add i64 %i, %j 2601dd85e9dSSam Parker %iajak = add i64 %iaj, %k 2611dd85e9dSSam Parker br label %N 2621dd85e9dSSam ParkerQ: 2631dd85e9dSSam Parker %ixj = xor i64 %i, %j 2641dd85e9dSSam Parker %ixjxk = xor i64 %ixj, %k 2651dd85e9dSSam Parker br label %N 2661dd85e9dSSam ParkerN: 2671dd85e9dSSam Parker %Wp = phi i64 [ %iajak, %P ], [ %ixjxk, %Q ] 2681dd85e9dSSam Parker %Wp2 = add i64 %Wp, %Wp 2691dd85e9dSSam Parker br label %M 2701dd85e9dSSam ParkerM: 2711dd85e9dSSam Parker %W = phi i64 [ %Wp2, %N ], [ 2, %entry ] 2721dd85e9dSSam Parker %R = add i64 %W, 1 2731dd85e9dSSam Parker ret i64 %R 2741dd85e9dSSam Parker} 2751dd85e9dSSam Parker 2761dd85e9dSSam Parkerdefine i64 @test_i64_minsize(i1 %a, i1 %b, i64 %i, i64 %j, i64 %k) #0 { 2771dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-4-LABEL: @test_i64_minsize( 2781dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-4-NEXT: entry: 2791dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-4-NEXT: br i1 [[A:%.*]], label [[M:%.*]], label [[O:%.*]] 2801dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-4: O: 281c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-4-NEXT: br i1 [[B:%.*]], label [[P:%.*]], label [[Q:%.*]] 282c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-4: P: 2831dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-4-NEXT: [[IAJ:%.*]] = add i64 [[I:%.*]], [[J:%.*]] 2841dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-4-NEXT: [[IAJAK:%.*]] = add i64 [[IAJ]], [[K:%.*]] 285c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-4-NEXT: br label [[N:%.*]] 286c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-4: Q: 2871dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-4-NEXT: [[IXJ:%.*]] = xor i64 [[I]], [[J]] 2881dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-4-NEXT: [[IXJXK:%.*]] = xor i64 [[IXJ]], [[K]] 289c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-4-NEXT: br label [[N]] 290c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-4: N: 291c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-4-NEXT: [[WP:%.*]] = phi i64 [ [[IAJAK]], [[P]] ], [ [[IXJXK]], [[Q]] ] 2921dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-4-NEXT: [[WP2:%.*]] = add i64 [[WP]], [[WP]] 2931dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-4-NEXT: br label [[M]] 2941dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-4: M: 295c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-4-NEXT: [[W:%.*]] = phi i64 [ [[WP2]], [[N]] ], [ 2, [[ENTRY:%.*]] ] 2961dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-4-NEXT: [[R:%.*]] = add i64 [[W]], 1 2971dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-4-NEXT: ret i64 [[R]] 2981dd85e9dSSam Parker; 2991dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4-LABEL: @test_i64_minsize( 3001dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4-NEXT: entry: 3011dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4-NEXT: br i1 [[A:%.*]], label [[M:%.*]], label [[O:%.*]] 3021dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4: O: 3031dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4-NEXT: [[IAJ:%.*]] = add i64 [[I:%.*]], [[J:%.*]] 3041dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4-NEXT: [[IAJAK:%.*]] = add i64 [[IAJ]], [[K:%.*]] 3051dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4-NEXT: [[IXJ:%.*]] = xor i64 [[I]], [[J]] 3061dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4-NEXT: [[IXJXK:%.*]] = xor i64 [[IXJ]], [[K]] 3071dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4-NEXT: [[WP:%.*]] = select i1 [[B:%.*]], i64 [[IAJAK]], i64 [[IXJXK]] 3081dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4-NEXT: [[WP2:%.*]] = add i64 [[WP]], [[WP]] 3091dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4-NEXT: br label [[M]] 3101dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4: M: 3111dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4-NEXT: [[W:%.*]] = phi i64 [ [[WP2]], [[O]] ], [ 2, [[ENTRY:%.*]] ] 3121dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4-NEXT: [[R:%.*]] = add i64 [[W]], 1 3131dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-4-NEXT: ret i64 [[R]] 3141dd85e9dSSam Parker; 3151dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-5-LABEL: @test_i64_minsize( 3161dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-5-NEXT: entry: 3171dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-5-NEXT: br i1 [[A:%.*]], label [[M:%.*]], label [[O:%.*]] 3181dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-5: O: 319c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-5-NEXT: br i1 [[B:%.*]], label [[P:%.*]], label [[Q:%.*]] 320c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-5: P: 3211dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-5-NEXT: [[IAJ:%.*]] = add i64 [[I:%.*]], [[J:%.*]] 3221dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-5-NEXT: [[IAJAK:%.*]] = add i64 [[IAJ]], [[K:%.*]] 323c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-5-NEXT: br label [[N:%.*]] 324c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-5: Q: 3251dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-5-NEXT: [[IXJ:%.*]] = xor i64 [[I]], [[J]] 3261dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-5-NEXT: [[IXJXK:%.*]] = xor i64 [[IXJ]], [[K]] 327c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-5-NEXT: br label [[N]] 328c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-5: N: 329c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-5-NEXT: [[WP:%.*]] = phi i64 [ [[IAJAK]], [[P]] ], [ [[IXJXK]], [[Q]] ] 3301dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-5-NEXT: [[WP2:%.*]] = add i64 [[WP]], [[WP]] 3311dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-5-NEXT: br label [[M]] 3321dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-5: M: 333c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-5-NEXT: [[W:%.*]] = phi i64 [ [[WP2]], [[N]] ], [ 2, [[ENTRY:%.*]] ] 3341dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-5-NEXT: [[R:%.*]] = add i64 [[W]], 1 3351dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-5-NEXT: ret i64 [[R]] 3361dd85e9dSSam Parker; 3371dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5-LABEL: @test_i64_minsize( 3381dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5-NEXT: entry: 3391dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5-NEXT: br i1 [[A:%.*]], label [[M:%.*]], label [[O:%.*]] 3401dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5: O: 3411dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5-NEXT: [[IAJ:%.*]] = add i64 [[I:%.*]], [[J:%.*]] 3421dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5-NEXT: [[IAJAK:%.*]] = add i64 [[IAJ]], [[K:%.*]] 3431dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5-NEXT: [[IXJ:%.*]] = xor i64 [[I]], [[J]] 3441dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5-NEXT: [[IXJXK:%.*]] = xor i64 [[IXJ]], [[K]] 3451dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5-NEXT: [[WP:%.*]] = select i1 [[B:%.*]], i64 [[IAJAK]], i64 [[IXJXK]] 3461dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5-NEXT: [[WP2:%.*]] = add i64 [[WP]], [[WP]] 3471dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5-NEXT: br label [[M]] 3481dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5: M: 3491dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5-NEXT: [[W:%.*]] = phi i64 [ [[WP2]], [[O]] ], [ 2, [[ENTRY:%.*]] ] 3501dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5-NEXT: [[R:%.*]] = add i64 [[W]], 1 3511dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-5-NEXT: ret i64 [[R]] 3521dd85e9dSSam Parker; 3531dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-6-LABEL: @test_i64_minsize( 3541dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-6-NEXT: entry: 355c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-6-NEXT: br i1 [[A:%.*]], label [[M:%.*]], label [[O:%.*]] 356c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-6: O: 357c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-6-NEXT: br i1 [[B:%.*]], label [[P:%.*]], label [[Q:%.*]] 358c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-6: P: 3591dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-6-NEXT: [[IAJ:%.*]] = add i64 [[I:%.*]], [[J:%.*]] 3601dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-6-NEXT: [[IAJAK:%.*]] = add i64 [[IAJ]], [[K:%.*]] 361c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-6-NEXT: br label [[N:%.*]] 362c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-6: Q: 3631dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-6-NEXT: [[IXJ:%.*]] = xor i64 [[I]], [[J]] 3641dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-6-NEXT: [[IXJXK:%.*]] = xor i64 [[IXJ]], [[K]] 365c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-6-NEXT: br label [[N]] 366c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-6: N: 367c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-6-NEXT: [[WP:%.*]] = phi i64 [ [[IAJAK]], [[P]] ], [ [[IXJXK]], [[Q]] ] 3681dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-6-NEXT: [[WP2:%.*]] = add i64 [[WP]], [[WP]] 369c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-6-NEXT: br label [[M]] 370c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-6: M: 371c40126e7SSanjay Patel; CHECK-V8M-TWO-FOLD-6-NEXT: [[W:%.*]] = phi i64 [ [[WP2]], [[N]] ], [ 2, [[ENTRY:%.*]] ] 3721dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-6-NEXT: [[R:%.*]] = add i64 [[W]], 1 3731dd85e9dSSam Parker; CHECK-V8M-TWO-FOLD-6-NEXT: ret i64 [[R]] 3741dd85e9dSSam Parker; 3751dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-6-LABEL: @test_i64_minsize( 3761dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-6-NEXT: entry: 3771dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-6-NEXT: [[IAJ:%.*]] = add i64 [[I:%.*]], [[J:%.*]] 3781dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-6-NEXT: [[IAJAK:%.*]] = add i64 [[IAJ]], [[K:%.*]] 3791dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-6-NEXT: [[IXJ:%.*]] = xor i64 [[I]], [[J]] 3801dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-6-NEXT: [[IXJXK:%.*]] = xor i64 [[IXJ]], [[K]] 3811dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-6-NEXT: [[WP:%.*]] = select i1 [[B:%.*]], i64 [[IAJAK]], i64 [[IXJXK]] 3821dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-6-NEXT: [[WP2:%.*]] = add i64 [[WP]], [[WP]] 3831dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-6-NEXT: [[W:%.*]] = select i1 [[A:%.*]], i64 2, i64 [[WP2]] 3841dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-6-NEXT: [[R:%.*]] = add i64 [[W]], 1 3851dd85e9dSSam Parker; CHECK-V8A-TWO-FOLD-6-NEXT: ret i64 [[R]] 3861dd85e9dSSam Parker; 3871dd85e9dSSam Parkerentry: 3881dd85e9dSSam Parker br i1 %a, label %M, label %O 3891dd85e9dSSam ParkerO: 3901dd85e9dSSam Parker br i1 %b, label %P, label %Q 3911dd85e9dSSam ParkerP: 3921dd85e9dSSam Parker %iaj = add i64 %i, %j 3931dd85e9dSSam Parker %iajak = add i64 %iaj, %k 3941dd85e9dSSam Parker br label %N 3951dd85e9dSSam ParkerQ: 3961dd85e9dSSam Parker %ixj = xor i64 %i, %j 3971dd85e9dSSam Parker %ixjxk = xor i64 %ixj, %k 3981dd85e9dSSam Parker br label %N 3991dd85e9dSSam ParkerN: 4001dd85e9dSSam Parker %Wp = phi i64 [ %iajak, %P ], [ %ixjxk, %Q ] 4011dd85e9dSSam Parker %Wp2 = add i64 %Wp, %Wp 4021dd85e9dSSam Parker br label %M 4031dd85e9dSSam ParkerM: 4041dd85e9dSSam Parker %W = phi i64 [ %Wp2, %N ], [ 2, %entry ] 4051dd85e9dSSam Parker %R = add i64 %W, 1 4061dd85e9dSSam Parker ret i64 %R 4071dd85e9dSSam Parker} 4081dd85e9dSSam Parker 4091dd85e9dSSam Parkerattributes #0 = { minsize optsize } 410