[PATCH] AVX-512 ERI Instrinsics for scalar instructions

Elena Demikhovsky elena.demikhovsky at intel.com
Sun Dec 7 00:32:19 PST 2014


Hi Adam, I'm sorry for the delay. I'm going to upload a new diff with all comments inside.

================
Comment at: lib/Target/X86/X86InstrAVX512.td:124-126
@@ -117,1 +123,5 @@
+// the scalar staff
+def f32x_info    : X86VectorVTInfo<1,  f32, VR128X, "ss">;
+def f64x_info    : X86VectorVTInfo<1,  f64, VR128X, "sd">;
+
 class AVX512VLVectorVTInfo<X86VectorVTInfo i512, X86VectorVTInfo i256,
----------------
anemet wrote:
> Why not FR32X and FR64X for RC?
I can't just change to FR32X, I have compilation errors in this case:

VRSQRT28SSrkz:  (set FR32X:<empty>:$dst, (X86select:<empty> VK1WM:i1:$mask, (X86rsqrt28s:v4f32 FR32X:<empty>:$src1, FR32X:v4f32:$src2, (imm:i32)<<P:Predicate_FROUND_CURRENT>>), (bitconvert:v4f32 (build_vector:v4i32)<<P:Predicate_immAllZerosV>>)))
Included from lib/Target/X86/X86.td:432:
Included from lib/Target/X86/X86InstrInfo.td:2387:
  lib/Target/X86/X86InstrAVX512.td:4253:3:** error: In VRSQRT28SSrkz: Type inference contradiction found, merging 'f32' into 'v4f32'**
  defm VRSQRT28 : avx512_eri_s<0xCD, "vrsqrt28", X86rsqrt28s>, T8PD, EVEX_4V;

In this case I should rewrite the full conception of FP scalars, used also in AVX and AVX2. Not sure that it is what we need now.

http://reviews.llvm.org/D6378






More information about the llvm-commits mailing list