Home | History | Annotate | Download | only in X86
      1 ; RUN: llc -march=x86 -mcpu=bdver2 -mattr=-fma -mtriple=x86_64-apple-darwin < %s | FileCheck %s
      2 ; RUN: llc -march=x86 -mcpu=bdver2 -mattr=-fma,-fma4 -mtriple=x86_64-apple-darwin < %s | FileCheck %s --check-prefix=CHECK-NOFMA
      3 
      4 ; CHECK-LABEL: fmafunc
      5 ; CHECK-NOFMA-LABEL: fmafunc
      6 define <16 x float> @fmafunc(<16 x float> %a, <16 x float> %b, <16 x float> %c) {
      7 
      8 ; CHECK-NOT: vmulps
      9 ; CHECK-NOT: vaddps
     10 ; CHECK: vfmaddps
     11 ; CHECK-NOT: vmulps
     12 ; CHECK-NOT: vaddps
     13 ; CHECK: vfmaddps
     14 ; CHECK-NOT: vmulps
     15 ; CHECK-NOT: vaddps
     16 
     17 ; CHECK-NOFMA-NOT: calll
     18 ; CHECK-NOFMA: vmulps
     19 ; CHECK-NOFMA: vaddps
     20 ; CHECK-NOFMA-NOT: calll
     21 ; CHECK-NOFMA: vmulps
     22 ; CHECK-NOFMA: vaddps
     23 ; CHECK-NOFMA-NOT: calll
     24 
     25   %ret = tail call <16 x float> @llvm.fmuladd.v16f32(<16 x float> %a, <16 x float> %b, <16 x float> %c)
     26   ret <16 x float> %ret
     27 }
     28 
     29 declare <16 x float> @llvm.fmuladd.v16f32(<16 x float>, <16 x float>, <16 x float>) nounwind readnone
     30