xref: /llvm-project/llvm/test/CodeGen/Lanai/lshift64.ll (revision 3bec3ef6cda9f079ea51902c2be0488aeba73d50)
1*3bec3ef6SJacques Pienaar; RUN: llc < %s -mtriple=lanai-unknown-unknown | FileCheck %s
2*3bec3ef6SJacques Pienaar
3*3bec3ef6SJacques Pienaar; Test left-shift i64 lowering does not result in call being inserted.
4*3bec3ef6SJacques Pienaar
5*3bec3ef6SJacques Pienaar; CHECK-LABEL: shift
6*3bec3ef6SJacques Pienaar; CHECKT: bt __ashldi3
7*3bec3ef6SJacques Pienaar; CHECK: or	%r0, 0x0, %r[[T0:[0-9]+]]
8*3bec3ef6SJacques Pienaar; CHECK: mov	0x20, %r[[T1:[0-9]+]]
9*3bec3ef6SJacques Pienaar; CHECK: sub	%r[[T1]], %r[[ShAmt:[0-9]+]], %r[[T1]]
10*3bec3ef6SJacques Pienaar; CHECK: sub	%r0, %r[[T1]], %r[[T1]]
11*3bec3ef6SJacques Pienaar; CHECK: sh	%r[[ShOpB:[0-9]+]], %r[[T1]], %r[[T1]]
12*3bec3ef6SJacques Pienaar; CHECK: sub.f	%r[[ShAmt]], 0x0, %r0
13*3bec3ef6SJacques Pienaar; CHECK: sel.eq %r0, %r[[T1]], %r[[T1]]
14*3bec3ef6SJacques Pienaar; CHECK: sh	%r[[ShOpA:[0-9]+]], %r[[ShAmt]], %r[[T2:[0-9]+]]
15*3bec3ef6SJacques Pienaar; CHECK: or	%r[[T1]], %r[[T2]], %rv
16*3bec3ef6SJacques Pienaar; CHECK: sub.f	%r[[ShAmt]], 0x20, %r[[T1]]
17*3bec3ef6SJacques Pienaar; CHECK: sh.pl	%r[[ShOpB]], %r[[T1]], %rv
18*3bec3ef6SJacques Pienaar; CHECK: sh.mi	%r[[ShOpB]], %r[[ShAmt]], %r[[T0]]
19*3bec3ef6SJacques Pienaar
20*3bec3ef6SJacques Pienaardefine i64 @shift(i64 inreg, i32 inreg) {
21*3bec3ef6SJacques Pienaar  %3 = zext i32 %1 to i64
22*3bec3ef6SJacques Pienaar  %4 = shl i64 %0, %3
23*3bec3ef6SJacques Pienaar  ret i64 %4
24*3bec3ef6SJacques Pienaar}
25