Home | History | Annotate | Download | only in MBlaze
      1 ; Ensure that floating point operations are lowered to function calls when the
      2 ; FPU is not available in the hardware and that function calls are not used
      3 ; when the FPU is available in the hardware.
      4 ;
      5 ; RUN: llc < %s -march=mblaze | FileCheck -check-prefix=FUN %s
      6 ; RUN: llc < %s -march=mblaze -mattr=+fpu | FileCheck -check-prefix=FPU %s
      7 
      8 define float @test_add(float %a, float %b) {
      9     ; FUN:        test_add:
     10     ; FPU:        test_add:
     11 
     12     %tmp.1 = fadd float %a, %b
     13     ; FUN:        brlid
     14     ; FPU-NOT:    brlid
     15 
     16     ret float %tmp.1
     17     ; FUN:        rtsd
     18     ; FPU:        rtsd
     19     ; FUN-NOT:    fadd
     20     ; FPU-NEXT:   fadd
     21 }
     22 
     23 define float @test_sub(float %a, float %b) {
     24     ; FUN:        test_sub:
     25     ; FPU:        test_sub:
     26 
     27     %tmp.1 = fsub float %a, %b
     28     ; FUN:        brlid
     29     ; FPU-NOT:    brlid
     30 
     31     ret float %tmp.1
     32     ; FUN:        rtsd
     33     ; FPU:        rtsd
     34     ; FUN-NOT:    frsub
     35     ; FPU-NEXT:   frsub
     36 }
     37 
     38 define float @test_mul(float %a, float %b) {
     39     ; FUN:        test_mul:
     40     ; FPU:        test_mul:
     41 
     42     %tmp.1 = fmul float %a, %b
     43     ; FUN:        brlid
     44     ; FPU-NOT:    brlid
     45 
     46     ret float %tmp.1
     47     ; FUN:        rtsd
     48     ; FPU:        rtsd
     49     ; FUN-NOT:    fmul
     50     ; FPU-NEXT:   fmul
     51 }
     52 
     53 define float @test_div(float %a, float %b) {
     54     ; FUN:        test_div:
     55     ; FPU:        test_div:
     56 
     57     %tmp.1 = fdiv float %a, %b
     58     ; FUN:        brlid
     59     ; FPU-NOT:    brlid
     60 
     61     ret float %tmp.1
     62     ; FUN:        rtsd
     63     ; FPU:        rtsd
     64     ; FUN-NOT:    fdiv
     65     ; FPU-NEXT:   fdiv
     66 }
     67