; RUN: llc -march=lanai < %s | FileCheck %s ; Test the in place lowering of mul i32. define i32 @f6(i32 inreg %a) #0 { entry: %mul = mul nsw i32 %a, 6 ret i32 %mul } ; CHECK: sh %r6, 0x1, %r{{[0-9]+}} ; CHECK: sh %r6, 0x3, %r{{[0-9]+}} ; CHECK: sub %r{{[0-9]+}}, %r{{[0-9]+}}, %rv define i32 @f7(i32 inreg %a) #0 { entry: %mul = mul nsw i32 %a, 7 ret i32 %mul } ; CHECK: sh %r6, 0x3, %r{{[0-9]+}} ; CHECK: sub %r{{[0-9]+}}, %r6, %rv define i32 @f8(i32 inreg %a) #0 { entry: %mul = shl nsw i32 %a, 3 ret i32 %mul } ; CHECK: sh %r6, 0x3, %rv define i32 @fm6(i32 inreg %a) #0 { entry: %mul = mul nsw i32 %a, -6 ret i32 %mul } ; CHECK: sh %r6, 0x3, %r{{[0-9]+}} ; CHECK: sh %r6, 0x1, %r{{[0-9]+}} ; CHECK: sub %r{{[0-9]+}}, %r{{[0-9]+}}, %rv define i32 @fm7(i32 inreg %a) #0 { entry: %mul = mul nsw i32 %a, -7 ret i32 %mul } ; CHECK: sh %r6, 0x3, %r{{[0-9]+}} ; CHECK: sub %r6, %r{{[0-9]+}}, %rv define i32 @fm8(i32 inreg %a) #0 { entry: %mul = mul nsw i32 %a, -8 ret i32 %mul } ; CHECK: sh %r6, 0x3, %r{{[0-9]+}} ; CHECK: sub %r{{[0-9]+}}, %r{{[0-9]+}}, %rv define i32 @h1(i32 inreg %a) #0 { entry: %mul = mul i32 %a, -1431655765 ret i32 %mul } ; CHECK: h1 ; CHECK: mulsi3