blob: 936cc6a7d366fce3cd3fc986f216f390f2e735f5 [file] [log] [blame]
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
; RUN: llc < %s -mtriple=aarch64-- | FileCheck %s --check-prefixes=CHECK
define float @positive_case_fma(float %a0, float %a1, float %a2) {
; CHECK-LABEL: positive_case_fma:
; CHECK: // %bb.0:
; CHECK-NEXT: fnmadd s0, s0, s1, s2
; CHECK-NEXT: ret
%fma = call float @llvm.fma.f32(float %a0, float %a1, float %a2)
%freeze = freeze float %fma
%fneg = fneg float %freeze
ret float %fneg
}
define float @negative_case_fma(float %a0, float %a1) {
; CHECK-LABEL: negative_case_fma:
; CHECK: // %bb.0:
; CHECK-NEXT: fnmadd s0, s0, s1, s0
; CHECK-NEXT: ret
%fma = call float @llvm.fma.f32(float %a0, float %a1, float poison)
%freeze = freeze float %fma
%fneg = fneg float %freeze
ret float %fneg
}
define float @positive_case_fmad(float %a0, float %a1, float %a2) {
; CHECK-LABEL: positive_case_fmad:
; CHECK: // %bb.0:
; CHECK-NEXT: fnmadd s0, s0, s1, s2
; CHECK-NEXT: ret
%fma = call float @llvm.fma.f32(float %a0, float %a1, float %a2)
%freeze = freeze float %fma
%fneg = fneg float %freeze
ret float %fneg
}
define float @negative_case_fmad(float %a0, float %a1) {
; CHECK-LABEL: negative_case_fmad:
; CHECK: // %bb.0:
; CHECK-NEXT: fnmadd s0, s0, s1, s0
; CHECK-NEXT: ret
%fmad = call float @llvm.fmuladd.f32(float %a0, float %a1, float poison)
%freeze = freeze float %fmad
%fneg = fneg float %freeze
ret float %fneg
}