Jinsong Ji | 8faf2f3 | 2019-08-08 17:37:58 +0000 | [diff] [blame^] | 1 | ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py |
| 2 | ; RUN: llc < %s -mtriple=powerpc64le-unknown-linux-gnu -verify-machineinstrs\ |
| 3 | ; RUN: -mcpu=pwr9 --ppc-enable-pipeliner 2>&1 | FileCheck %s |
| 4 | |
| 5 | define void @phi5() unnamed_addr { |
| 6 | ; CHECK-LABEL: phi5: |
| 7 | ; CHECK: # %bb.0: |
| 8 | ; CHECK-NEXT: # %bb.1: |
| 9 | ; CHECK-NEXT: li 3, 0 |
| 10 | ; CHECK-NEXT: li 4, 1 |
| 11 | ; CHECK-NEXT: slw 3, 4, 3 |
| 12 | ; CHECK-NEXT: andi. 3, 3, 6336 |
| 13 | ; CHECK-NEXT: beqlr 0 |
| 14 | ; CHECK-NEXT: # %bb.2: |
| 15 | ; CHECK-NEXT: lhz 3, 0(3) |
| 16 | ; CHECK-NEXT: slwi 3, 3, 15 |
| 17 | ; CHECK-NEXT: clrlwi 3, 3, 31 |
| 18 | ; CHECK-NEXT: rlwinm 4, 3, 31, 17, 31 |
| 19 | ; CHECK-NEXT: or 3, 3, 4 |
| 20 | ; CHECK-NEXT: rlwimi 3, 3, 15, 0, 16 |
| 21 | ; CHECK-NEXT: # %bb.3: |
| 22 | ; CHECK-NEXT: blr |
| 23 | switch i12 undef, label %21 [ |
| 24 | i12 6, label %1 |
| 25 | i12 7, label %1 |
| 26 | i12 12, label %1 |
| 27 | i12 11, label %1 |
| 28 | ] |
| 29 | |
| 30 | 1: ; preds = %0, %0, %0, %0 |
| 31 | %2 = load i16, i16* undef, align 2 |
| 32 | br label %3 |
| 33 | |
| 34 | 3: ; preds = %3, %1 |
| 35 | %4 = phi i16 [ %18, %3 ], [ undef, %1 ] |
| 36 | %5 = phi i16 [ %13, %3 ], [ undef, %1 ] |
| 37 | %6 = phi i16 [ %11, %3 ], [ undef, %1 ] |
| 38 | %7 = phi i16 [ undef, %3 ], [ %2, %1 ] |
| 39 | %8 = phi i32 [ %19, %3 ], [ undef, %1 ] |
| 40 | %9 = lshr i16 %6, 1 |
| 41 | %10 = shl i16 %7, 15 |
| 42 | %11 = or i16 %10, %9 |
| 43 | %12 = shl i16 %6, 15 |
| 44 | %13 = or i16 %12, 0 |
| 45 | %14 = and i16 %4, 1 |
| 46 | %15 = lshr i16 %4, 1 |
| 47 | %16 = shl i16 %5, 15 |
| 48 | %17 = or i16 %14, %15 |
| 49 | %18 = or i16 %17, %16 |
| 50 | %19 = add i32 %8, -1 |
| 51 | %20 = icmp eq i32 %19, 0 |
| 52 | br i1 %20, label %21, label %3 |
| 53 | |
| 54 | 21: ; preds = %3, %0 |
| 55 | ret void |
| 56 | } |