• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
6define <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
29declare <16 x float> @llvm.fmuladd.v16f32(<16 x float>, <16 x float>, <16 x float>) nounwind readnone
30