57 lines
1.6 KiB
LLVM
57 lines
1.6 KiB
LLVM
|
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
||
|
; RUN: llc < %s -mtriple=powerpc64le-unknown-linux-gnu -verify-machineinstrs\
|
||
|
; RUN: -mcpu=pwr9 --ppc-enable-pipeliner 2>&1 | FileCheck %s
|
||
|
|
||
|
define void @phi5() unnamed_addr {
|
||
|
; CHECK-LABEL: phi5:
|
||
|
; CHECK: # %bb.0:
|
||
|
; CHECK-NEXT: # %bb.1:
|
||
|
; CHECK-NEXT: li 3, 0
|
||
|
; CHECK-NEXT: li 4, 1
|
||
|
; CHECK-NEXT: slw 3, 4, 3
|
||
|
; CHECK-NEXT: andi. 3, 3, 6336
|
||
|
; CHECK-NEXT: beqlr 0
|
||
|
; CHECK-NEXT: # %bb.2:
|
||
|
; CHECK-NEXT: lhz 3, 0(3)
|
||
|
; CHECK-NEXT: slwi 3, 3, 15
|
||
|
; CHECK-NEXT: clrlwi 3, 3, 31
|
||
|
; CHECK-NEXT: rlwinm 4, 3, 31, 17, 31
|
||
|
; CHECK-NEXT: or 3, 3, 4
|
||
|
; CHECK-NEXT: rlwimi 3, 3, 15, 0, 16
|
||
|
; CHECK-NEXT: # %bb.3:
|
||
|
; CHECK-NEXT: blr
|
||
|
switch i12 undef, label %21 [
|
||
|
i12 6, label %1
|
||
|
i12 7, label %1
|
||
|
i12 12, label %1
|
||
|
i12 11, label %1
|
||
|
]
|
||
|
|
||
|
1: ; preds = %0, %0, %0, %0
|
||
|
%2 = load i16, i16* undef, align 2
|
||
|
br label %3
|
||
|
|
||
|
3: ; preds = %3, %1
|
||
|
%4 = phi i16 [ %18, %3 ], [ undef, %1 ]
|
||
|
%5 = phi i16 [ %13, %3 ], [ undef, %1 ]
|
||
|
%6 = phi i16 [ %11, %3 ], [ undef, %1 ]
|
||
|
%7 = phi i16 [ undef, %3 ], [ %2, %1 ]
|
||
|
%8 = phi i32 [ %19, %3 ], [ undef, %1 ]
|
||
|
%9 = lshr i16 %6, 1
|
||
|
%10 = shl i16 %7, 15
|
||
|
%11 = or i16 %10, %9
|
||
|
%12 = shl i16 %6, 15
|
||
|
%13 = or i16 %12, 0
|
||
|
%14 = and i16 %4, 1
|
||
|
%15 = lshr i16 %4, 1
|
||
|
%16 = shl i16 %5, 15
|
||
|
%17 = or i16 %14, %15
|
||
|
%18 = or i16 %17, %16
|
||
|
%19 = add i32 %8, -1
|
||
|
%20 = icmp eq i32 %19, 0
|
||
|
br i1 %20, label %21, label %3
|
||
|
|
||
|
21: ; preds = %3, %0
|
||
|
ret void
|
||
|
}
|