brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.5 KiB · 1a93e38 Raw
95 lines · plain
1; RUN: llc -mtriple=x86_64-- -global-isel=0 -print-after=finalize-isel \2; RUN:   -stop-after=finalize-isel %s -o /dev/null 2>&1 | \3; RUN:   FileCheck %s --check-prefix=CHECK-SDISEL4; RUN: llc -mtriple=x86_64-- -global-isel=1 -print-after=finalize-isel \5; RUN:   -stop-after=finalize-isel %s -o /dev/null 2>&1 | \6; RUN:   FileCheck %s --check-prefix=CHECK-GISEL7 8; PR500809define i32 @baz(i32 %0) {10; CHECK-SDISEL: bb.0 (%ir-block.1):11; CHECK-SDISEL:   successors: %bb.4(0x80000000); %bb.4(100.00%)12; CHECK-SDISEL:   liveins: $edi13; CHECK-SDISEL:   %1:gr32 = COPY $edi14; CHECK-SDISEL:   %2:gr32 = MOV32r0 implicit-def dead $eflags15; CHECK-SDISEL:   %3:gr32 = COPY %1:gr3216; CHECK-SDISEL: bb.4 (%ir-block.1):17; CHECK-SDISEL: ; predecessors: %bb.018; CHECK-SDISEL:   successors: %bb.3(0x55555555), %bb.1(0x2aaaaaab); %bb.3(66.67%), %bb.1(33.33%)19; CHECK-SDISEL:   %4:gr32 = MOV32ri 1305620; CHECK-SDISEL:   BT32rr killed %4:gr32, %3:gr32, implicit-def $eflags21; CHECK-SDISEL:   JCC_1 %bb.3, 2, implicit $eflags22; CHECK-SDISEL:   JMP_1 %bb.123; CHECK-SDISEL: bb.5 (%ir-block.1):24; CHECK-SDISEL: bb.1.sw.epilog8:25; CHECK-SDISEL: ; predecessors: %bb.426; CHECK-SDISEL:   successors: %bb.3(0x80000000); %bb.3(100.00%)27; CHECK-SDISEL:   %5:gr32 = MOV32ri 128; CHECK-SDISEL:   JMP_1 %bb.329; CHECK-SDISEL: bb.2.if.then.unreachabledefault:30; CHECK-SDISEL: bb.3.return:31; CHECK-SDISEL: ; predecessors: %bb.4, %bb.132; CHECK-SDISEL:   %0:gr32 = PHI %2:gr32, %bb.4, %5:gr32, %bb.133; CHECK-SDISEL:   $eax = COPY %0:gr3234; CHECK-SDISEL:   RET 0, $eax35 36 37; CHECK-GISEL: bb.1 (%ir-block.1):38; CHECK-GISEL:   successors: %bb.5(0x80000000); %bb.5(100.00%)39; CHECK-GISEL:   liveins: $edi40; CHECK-GISEL:   %0:gr32 = COPY $edi41; CHECK-GISEL:   %10:gr32 = MOV32ri 142; CHECK-GISEL:   %11:gr32 = MOV32r0 implicit-def dead $eflags43; CHECK-GISEL:   %2:gr32 = SUB32ri %0:gr32(tied-def 0), 0, implicit-def dead $eflags44; CHECK-GISEL: bb.5 (%ir-block.1):45; CHECK-GISEL: ; predecessors: %bb.146; CHECK-GISEL:   successors: %bb.4(0x55555555), %bb.2(0x2aaaaaab); %bb.4(66.67%), %bb.2(33.33%)47; CHECK-GISEL:   %3:gr32 = MOV32ri 148; CHECK-GISEL:   %13:gr8 = COPY %2.sub_8bit:gr3249; CHECK-GISEL:   $cl = COPY %13:gr850; CHECK-GISEL:   %4:gr32 = SHL32rCL %3:gr32(tied-def 0), implicit-def dead $eflags, implicit $cl51; CHECK-GISEL:   %6:gr32 = AND32ri %4:gr32(tied-def 0), 13056, implicit-def dead $eflags52; CHECK-GISEL:   %7:gr32 = MOV32r0 implicit-def dead $eflags53; CHECK-GISEL:   CMP32rr %6:gr32, %7:gr32, implicit-def $eflags54; CHECK-GISEL:   %12:gr8 = SETCCr 5, implicit $eflags55; CHECK-GISEL:   TEST8ri %12:gr8, 1, implicit-def $eflags56; CHECK-GISEL:   JCC_1 %bb.4, 5, implicit $eflags57; CHECK-GISEL:   JMP_1 %bb.258; CHECK-GISEL: bb.6 (%ir-block.1):59; CHECK-GISEL: bb.2.sw.epilog8:60; CHECK-GISEL: ; predecessors: %bb.561; CHECK-GISEL:   successors: %bb.4(0x80000000); %bb.4(100.00%)62; CHECK-GISEL:   JMP_1 %bb.463; CHECK-GISEL: bb.3.if.then.unreachabledefault:64; CHECK-GISEL: bb.4.return:65; CHECK-GISEL: ; predecessors: %bb.5, %bb.266; CHECK-GISEL:   %9:gr32 = PHI %10:gr32, %bb.2, %11:gr32, %bb.567; CHECK-GISEL:   $eax = COPY %9:gr3268; CHECK-GISEL:   RET 0, implicit $eax69 70  switch i32 %0, label %if.then.unreachabledefault [71    i32 4, label %sw.epilog872    i32 5, label %sw.epilog873    i32 8, label %sw.bb274    i32 9, label %sw.bb275    i32 12, label %sw.bb476    i32 13, label %sw.bb477  ]78 79sw.bb2:80  br label %return81 82sw.bb4:83  br label %return84 85sw.epilog8:86  br label %return87 88if.then.unreachabledefault:89  unreachable90 91return:92  %retval.0 = phi i32 [ 1, %sw.epilog8 ], [ 0, %sw.bb2 ], [ 0, %sw.bb4 ]93  ret i32 %retval.094}95