blob: bdc773de8aaf1ec2634dcda1dd0b1d5a4991bf21 [file] [log] [blame]
Jinsong Ji8faf2f32019-08-08 17:37:58 +00001; 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
5define 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
301: ; preds = %0, %0, %0, %0
31 %2 = load i16, i16* undef, align 2
32 br label %3
33
343: ; 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
5421: ; preds = %3, %0
55 ret void
56}