diff options
author | Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> | 2014-03-18 17:12:59 +0000 |
---|---|---|
committer | Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> | 2014-03-18 17:12:59 +0000 |
commit | 28f46d9f390123b822f82403649284d6f61e6153 (patch) | |
tree | 73b4df9d3e0b6cfdcd220a40cbed1f62889d9b7f /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | ed39e7cfebba4e92839877422c49db93a50e3a32 (diff) | |
download | llvm-28f46d9f390123b822f82403649284d6f61e6153.zip llvm-28f46d9f390123b822f82403649284d6f61e6153.tar.gz llvm-28f46d9f390123b822f82403649284d6f61e6153.tar.bz2 |
[DAGCombiner] teach how to simplify xor/and/or nodes according to the following rules:
1) (AND (shuf (A, C, Mask), shuf (B, C, Mask)) -> shuf (AND (A, B), C, Mask)
2) (OR (shuf (A, C, Mask), shuf (B, C, Mask)) -> shuf (OR (A, B), C, Mask)
3) (XOR (shuf (A, C, Mask), shuf (B, C, Mask)) -> shuf (XOR (A, B), V_0, Mask)
4) (AND (shuf (C, A, Mask), shuf (C, B, Mask)) -> shuf (C, AND (A, B), Mask)
5) (OR (shuf (C, A, Mask), shuf (C, B, Mask)) -> shuf (C, OR (A, B), Mask)
6) (XOR (shuf (C, A, Mask), shuf (C, B, Mask)) -> shuf (V_0, XOR (A, B), Mask)
llvm-svn: 204160
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions