48 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc < %s -mtriple=aarch64-- | FileCheck %s --check-prefixes=CHECK3 4define float @positive_case_fma(float %a0, float %a1, float %a2) {5; CHECK-LABEL: positive_case_fma:6; CHECK: // %bb.0:7; CHECK-NEXT: fnmadd s0, s0, s1, s28; CHECK-NEXT: ret9 %fma = call float @llvm.fma.f32(float %a0, float %a1, float %a2)10 %freeze = freeze float %fma11 %fneg = fneg float %freeze12 ret float %fneg13}14 15define float @negative_case_fma(float %a0, float %a1) {16; CHECK-LABEL: negative_case_fma:17; CHECK: // %bb.0:18; CHECK-NEXT: fnmadd s0, s0, s1, s019; CHECK-NEXT: ret20 %fma = call float @llvm.fma.f32(float %a0, float %a1, float poison)21 %freeze = freeze float %fma22 %fneg = fneg float %freeze23 ret float %fneg24}25 26define float @positive_case_fmad(float %a0, float %a1, float %a2) {27; CHECK-LABEL: positive_case_fmad:28; CHECK: // %bb.0:29; CHECK-NEXT: fnmadd s0, s0, s1, s230; CHECK-NEXT: ret31 %fma = call float @llvm.fma.f32(float %a0, float %a1, float %a2)32 %freeze = freeze float %fma33 %fneg = fneg float %freeze34 ret float %fneg35}36 37define float @negative_case_fmad(float %a0, float %a1) {38; CHECK-LABEL: negative_case_fmad:39; CHECK: // %bb.0:40; CHECK-NEXT: fnmadd s0, s0, s1, s041; CHECK-NEXT: ret42 %fmad = call float @llvm.fmuladd.f32(float %a0, float %a1, float poison)43 %freeze = freeze float %fmad44 %fneg = fneg float %freeze45 ret float %fneg46}47 48