[PATCH] D56864: [x86] vectorize cast ops in lowering to avoid register file transfers
    Sanjay Patel via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Thu Jan 24 17:55:51 PST 2019
    
    
  
spatel marked an inline comment as done.
spatel added inline comments.
================
Comment at: test/CodeGen/X86/vec_int_to_fp.ll:5581
 ; AVX:       # %bb.0:
-; AVX-NEXT:    vmovd %xmm0, %eax
-; AVX-NEXT:    vcvtsi2sdl %eax, %xmm1, %xmm0
+; AVX-NEXT:    vcvtdq2pd %xmm0, %xmm0
 ; AVX-NEXT:    retq
----------------
spatel wrote:
> We miss this with SSE because the v4f64 type is not legal. We need to add another check to allow conversion to v2f64 directly if we're extracting from the zero or low elements of a 128-bit source vector.
I have an ugly draft of a patch that would handle that case. It requires that we produce a X86ISD::CVTSI2P node rather than the generic SINT_TO_FP and that we return/adjust the destination type rather than assuming it's a vector with the same number of elements.
I'd prefer to do that in a follow-up commit to reduce risk (assuming we're ok with this general direction).
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D56864/new/
https://reviews.llvm.org/D56864
    
    
More information about the llvm-commits
mailing list