1 // Copyright 2020 the V8 project authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 // 5 #ifndef V8_CODEGEN_X64_FMA_INSTR_H_ 6 #define V8_CODEGEN_X64_FMA_INSTR_H_ 7 8 #define FMA_SD_INSTRUCTION_LIST(V) \ 9 V(vfmadd132sd, L128, 66, 0F, 38, W1, 99) \ 10 V(vfmadd213sd, L128, 66, 0F, 38, W1, a9) \ 11 V(vfmadd231sd, L128, 66, 0F, 38, W1, b9) \ 12 V(vfmsub132sd, L128, 66, 0F, 38, W1, 9b) \ 13 V(vfmsub213sd, L128, 66, 0F, 38, W1, ab) \ 14 V(vfmsub231sd, L128, 66, 0F, 38, W1, bb) \ 15 V(vfnmadd132sd, L128, 66, 0F, 38, W1, 9d) \ 16 V(vfnmadd213sd, L128, 66, 0F, 38, W1, ad) \ 17 V(vfnmadd231sd, L128, 66, 0F, 38, W1, bd) \ 18 V(vfnmsub132sd, L128, 66, 0F, 38, W1, 9f) \ 19 V(vfnmsub213sd, L128, 66, 0F, 38, W1, af) \ 20 V(vfnmsub231sd, L128, 66, 0F, 38, W1, bf) 21 22 #define FMA_SS_INSTRUCTION_LIST(V) \ 23 V(vfmadd132ss, LIG, 66, 0F, 38, W0, 99) \ 24 V(vfmadd213ss, LIG, 66, 0F, 38, W0, a9) \ 25 V(vfmadd231ss, LIG, 66, 0F, 38, W0, b9) \ 26 V(vfmsub132ss, LIG, 66, 0F, 38, W0, 9b) \ 27 V(vfmsub213ss, LIG, 66, 0F, 38, W0, ab) \ 28 V(vfmsub231ss, LIG, 66, 0F, 38, W0, bb) \ 29 V(vfnmadd132ss, LIG, 66, 0F, 38, W0, 9d) \ 30 V(vfnmadd213ss, LIG, 66, 0F, 38, W0, ad) \ 31 V(vfnmadd231ss, LIG, 66, 0F, 38, W0, bd) \ 32 V(vfnmsub132ss, LIG, 66, 0F, 38, W0, 9f) \ 33 V(vfnmsub213ss, LIG, 66, 0F, 38, W0, af) \ 34 V(vfnmsub231ss, LIG, 66, 0F, 38, W0, bf) 35 36 #define FMA_PS_INSTRUCTION_LIST(V) \ 37 V(vfmadd132ps, L128, 66, 0F, 38, W0, 98) \ 38 V(vfmadd213ps, L128, 66, 0F, 38, W0, a8) \ 39 V(vfmadd231ps, L128, 66, 0F, 38, W0, b8) \ 40 V(vfnmadd132ps, L128, 66, 0F, 38, W0, 9c) \ 41 V(vfnmadd213ps, L128, 66, 0F, 38, W0, ac) \ 42 V(vfnmadd231ps, L128, 66, 0F, 38, W0, bc) 43 44 #define FMA_PD_INSTRUCTION_LIST(V) \ 45 V(vfmadd132pd, L128, 66, 0F, 38, W1, 98) \ 46 V(vfmadd213pd, L128, 66, 0F, 38, W1, a8) \ 47 V(vfmadd231pd, L128, 66, 0F, 38, W1, b8) \ 48 V(vfnmadd132pd, L128, 66, 0F, 38, W1, 9c) \ 49 V(vfnmadd213pd, L128, 66, 0F, 38, W1, ac) \ 50 V(vfnmadd231pd, L128, 66, 0F, 38, W1, bc) 51 52 #define FMA_INSTRUCTION_LIST(V) \ 53 FMA_SD_INSTRUCTION_LIST(V) \ 54 FMA_SS_INSTRUCTION_LIST(V) \ 55 FMA_PS_INSTRUCTION_LIST(V) \ 56 FMA_PD_INSTRUCTION_LIST(V) 57 58 #endif // V8_CODEGEN_X64_FMA_INSTR_H_ 59