Home | History | Annotate | Download | only in MBlaze
      1 ; Ensure that multiplication is lowered to function calls when the multiplier
      2 ; unit is not available in the hardware and that function calls are not used
      3 ; when the multiplier unit is available in the hardware.
      4 ;
      5 ; RUN: llc < %s -march=mblaze | FileCheck -check-prefix=FUN %s
      6 ; RUN: llc < %s -march=mblaze -mattr=+mul | FileCheck -check-prefix=MUL %s
      7 
      8 define i8 @test_i8(i8 %a, i8 %b) {
      9     ; FUN:        test_i8:
     10     ; MUL:        test_i8:
     11 
     12     %tmp.1 = mul i8 %a, %b
     13     ; FUN-NOT:    mul
     14     ; FUN:        brlid
     15     ; MUL-NOT:    brlid
     16 
     17     ret i8 %tmp.1
     18     ; FUN:        rtsd
     19     ; MUL:        rtsd
     20     ; MUL:        mul
     21 }
     22 
     23 define i16 @test_i16(i16 %a, i16 %b) {
     24     ; FUN:        test_i16:
     25     ; MUL:        test_i16:
     26 
     27     %tmp.1 = mul i16 %a, %b
     28     ; FUN-NOT:    mul
     29     ; FUN:        brlid
     30     ; MUL-NOT:    brlid
     31 
     32     ret i16 %tmp.1
     33     ; FUN:        rtsd
     34     ; MUL:        rtsd
     35     ; MUL:        mul
     36 }
     37 
     38 define i32 @test_i32(i32 %a, i32 %b) {
     39     ; FUN:        test_i32:
     40     ; MUL:        test_i32:
     41 
     42     %tmp.1 = mul i32 %a, %b
     43     ; FUN-NOT:    mul
     44     ; FUN:        brlid
     45     ; MUL-NOT:    brlid
     46 
     47     ret i32 %tmp.1
     48     ; FUN:        rtsd
     49     ; MUL:        rtsd
     50     ; MUL:        mul
     51 }
     52