61 lines · plain
1; RUN: llc -mtriple=lanai < %s | FileCheck %s2 3; Test the in place lowering of mul i32.4 5define i32 @f6(i32 inreg %a) #0 {6entry:7 %mul = mul nsw i32 %a, 68 ret i32 %mul9}10; CHECK: sh %r6, 0x1, %r{{[0-9]+}}11; CHECK: sh %r6, 0x3, %r{{[0-9]+}}12; CHECK: sub %r{{[0-9]+}}, %r{{[0-9]+}}, %rv13 14define i32 @f7(i32 inreg %a) #0 {15entry:16 %mul = mul nsw i32 %a, 717 ret i32 %mul18}19; CHECK: sh %r6, 0x3, %r{{[0-9]+}}20; CHECK: sub %r{{[0-9]+}}, %r6, %rv21 22define i32 @f8(i32 inreg %a) #0 {23entry:24 %mul = shl nsw i32 %a, 325 ret i32 %mul26}27; CHECK: sh %r6, 0x3, %rv28 29define i32 @fm6(i32 inreg %a) #0 {30entry:31 %mul = mul nsw i32 %a, -632 ret i32 %mul33}34; CHECK: sh %r6, 0x3, %r{{[0-9]+}}35; CHECK: sh %r6, 0x1, %r{{[0-9]+}}36; CHECK: sub %r{{[0-9]+}}, %r{{[0-9]+}}, %rv37 38define i32 @fm7(i32 inreg %a) #0 {39entry:40 %mul = mul nsw i32 %a, -741 ret i32 %mul42}43; CHECK: sh %r6, 0x3, %r{{[0-9]+}}44; CHECK: sub %r6, %r{{[0-9]+}}, %rv45 46define i32 @fm8(i32 inreg %a) #0 {47entry:48 %mul = mul nsw i32 %a, -849 ret i32 %mul50}51; CHECK: sh %r6, 0x3, %r{{[0-9]+}}52; CHECK: sub %r{{[0-9]+}}, %r{{[0-9]+}}, %rv53 54define i32 @h1(i32 inreg %a) #0 {55entry:56 %mul = mul i32 %a, -143165576557 ret i32 %mul58}59; CHECK: h160; CHECK: mulsi361