; 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 }