xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/extended-fma-contraction.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=x86 -mcpu=bdver2 -mattr=-fma -mtriple=x86_64-apple-darwin < %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=x86 -mcpu=bdver2 -mattr=-fma,-fma4 -mtriple=x86_64-apple-darwin < %s | FileCheck %s --check-prefix=CHECK-NOFMA
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: fmafunc
5*9880d681SAndroid Build Coastguard Workerdefine <3 x float> @fmafunc(<3 x float> %a, <3 x float> %b, <3 x float> %c) {
6*9880d681SAndroid Build Coastguard Worker
7*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: vmulps
8*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: vaddps
9*9880d681SAndroid Build Coastguard Worker; CHECK: vfmaddps
10*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: vmulps
11*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: vaddps
12*9880d681SAndroid Build Coastguard Worker
13*9880d681SAndroid Build Coastguard Worker; CHECK-NOFMA-NOT: calll
14*9880d681SAndroid Build Coastguard Worker; CHECK-NOFMA: vmulps
15*9880d681SAndroid Build Coastguard Worker; CHECK-NOFMA: vaddps
16*9880d681SAndroid Build Coastguard Worker; CHECK-NOFMA-NOT: calll
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Worker  %ret = tail call <3 x float> @llvm.fmuladd.v3f32(<3 x float> %a, <3 x float> %b, <3 x float> %c)
19*9880d681SAndroid Build Coastguard Worker  ret <3 x float> %ret
20*9880d681SAndroid Build Coastguard Worker}
21*9880d681SAndroid Build Coastguard Worker
22*9880d681SAndroid Build Coastguard Workerdeclare <3 x float> @llvm.fmuladd.v3f32(<3 x float>, <3 x float>, <3 x float>) nounwind readnone
23