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