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