[PATCH] D14588: [X86][SSE] Transform truncation from v8i32/v16i32 to v8i8/v16i8 into bitand and X86ISD::PACKUS operations during DAG combine.

Cong Hou via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 25 00:14:51 PST 2015


congh added a comment.

In http://reviews.llvm.org/D14588#296349, @congh wrote:

> Update the patch according to Simon's comments.
>
> The optimization in this patch now covers more truncations with vXi32/vXi64 to vXi8/vXi16 for X >= 8.


Agree

In http://reviews.llvm.org/D14588#295639, @RKSimon wrote:

> I think you need to rebase after http://reviews.llvm.org/rL253952
>
> You should be able to support packing with packssdw as well - it would allow us to truncate vXi32 -> vXi16 on SSE2 targets


Agree. I have updated the patch to support this truncation as well. PTAL.


================
Comment at: test/CodeGen/X86/vector-trunc.ll:270
@@ -292,2 +269,3 @@
 ; SSSE3-LABEL: trunc16i32_16i8:
 ; SSSE3:       # BB#0: # %entry
+; SSSE3-NEXT:    movdqa {{.*#+}} xmm4 = [255,0,0,0,255,0,0,0,255,0,0,0,255,0,0,0]
----------------
RKSimon wrote:
> Aren't the SSE2/SSSE3/SSSE41 checks the same now? Shouldn't they just use SSE-CHECK ? Try to use update_llc_test_checks.py if you can.
Thanks so much for the advice of using update_llc_test_checks.py! It automatically combines tests of SSE2/SSSE3/SSSE41 into SSE test only. 


http://reviews.llvm.org/D14588





More information about the llvm-commits mailing list