[PATCH] D14399: [X86][SSE] Combine UNPCKL with vector_shuffle into UNPCKH to save one instruction for sext from v16i8 to v16i16 and v8i16 to v8i32.

Cong Hou via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 5 14:52:38 PST 2015


congh created this revision.
congh added reviewers: hfinkel, RKSimon, dexonsmith, davidxl.
congh added a subscriber: llvm-commits.

This patch is enabling combining UNPCKL with vector_shuffle that moves the upper half of a vector into the lower half, into a UNPCKH instruction. For example:


```
    t2: v16i8 = vector_shuffle<8,9,10,11,12,13,14,15,u,u,u,u,u,u,u,u> t1,
        undef:v16i8
    t3: v16i8 = X86ISD::UNPCKL undef:v16i8, t2
```

    will be combined to:
   

```
    t3: v16i8 = X86ISD::UNPCKH undef:v16i8, t1
```

http://reviews.llvm.org/D14399

Files:
  lib/Target/X86/X86ISelLowering.cpp
  test/CodeGen/X86/vec_int_to_fp.ll
  test/CodeGen/X86/vector-sext.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D14399.39423.patch
Type: text/x-patch
Size: 5914 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151105/84879c43/attachment.bin>


More information about the llvm-commits mailing list