Home | History | Annotate | Download | only in Lanai
      1 ; RUN: llc -march=lanai < %s | FileCheck %s
      2 
      3 ; Test the in place lowering of mul i32.
      4 
      5 define i32 @f6(i32 inreg %a) #0 {
      6 entry:
      7   %mul = mul nsw i32 %a, 6
      8   ret i32 %mul
      9 }
     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]+}}, %rv
     13 
     14 define i32 @f7(i32 inreg %a) #0 {
     15 entry:
     16   %mul = mul nsw i32 %a, 7
     17   ret i32 %mul
     18 }
     19 ; CHECK: sh %r6, 0x3, %r{{[0-9]+}}
     20 ; CHECK: sub %r{{[0-9]+}}, %r6, %rv
     21 
     22 define i32 @f8(i32 inreg %a) #0 {
     23 entry:
     24   %mul = shl nsw i32 %a, 3
     25   ret i32 %mul
     26 }
     27 ; CHECK: sh %r6, 0x3, %rv
     28 
     29 define i32 @fm6(i32 inreg %a) #0 {
     30 entry:
     31   %mul = mul nsw i32 %a, -6
     32   ret i32 %mul
     33 }
     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]+}}, %rv
     37 
     38 define i32 @fm7(i32 inreg %a) #0 {
     39 entry:
     40   %mul = mul nsw i32 %a, -7
     41   ret i32 %mul
     42 }
     43 ; CHECK: sh %r6, 0x3, %r{{[0-9]+}}
     44 ; CHECK: sub %r6, %r{{[0-9]+}}, %rv
     45 
     46 define i32 @fm8(i32 inreg %a) #0 {
     47 entry:
     48   %mul = mul nsw i32 %a, -8
     49   ret i32 %mul
     50 }
     51 ; CHECK: sh %r6, 0x3, %r{{[0-9]+}}
     52 ; CHECK: sub %r{{[0-9]+}}, %r{{[0-9]+}}, %rv
     53 
     54 define i32 @h1(i32 inreg %a) #0 {
     55 entry:
     56   %mul = mul i32 %a, -1431655765
     57   ret i32 %mul
     58 }
     59 ; CHECK: h1
     60 ; CHECK: mulsi3
     61