[PATCH] [X86] replace vinsertf128 intrinsics with generic shuffles

Sanjay Patel spatel at rotateright.com
Thu Mar 5 17:18:09 PST 2015


In http://reviews.llvm.org/D8086#135205, @RKSimon wrote:

> > If anyone can explain why vinsertf128 with a 0 immediate exists, I'm curious...
>
>
> IIRC its only real use is for loading xmm into the ymm - using a blend would reference a whole 256-bit vector of memory that might not be valid.


Yes, the memop form is different. I see only one regression test with a memop vinsertf128 (stack-folding-fp-avx1.ll), and it has an immediate 1 operand. From what I've seen so far, we're always going to replace the reg/reg form with imm 0 with a blendi after this change. This should be good because vblendps/pd have better perf on every chip that I checked. Will have to see what happens in the load fold case.


http://reviews.llvm.org/D8086

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/






More information about the llvm-commits mailing list