mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 20:23:11 +01:00
Add patterns for matching vnots with bit converted inputs. Most of these will
go away when I start using evan's binop type canonicalizer llvm-svn: 27725
This commit is contained in:
parent
254683a3df
commit
2ede0fef98
@ -607,10 +607,16 @@ def : Pat<(v16i8 (vnot VRRC:$vA)), (v16i8 (VNOR VRRC:$vA, VRRC:$vA))>;
|
||||
def : Pat<(v8i16 (vnot VRRC:$vA)), (v8i16 (VNOR VRRC:$vA, VRRC:$vA))>;
|
||||
def : Pat<(v4i32 (vnot VRRC:$vA)), (v4i32 (VNOR VRRC:$vA, VRRC:$vA))>;
|
||||
|
||||
def : Pat<(v16i8 (vnot_conv VRRC:$vA)), (v16i8 (VNOR VRRC:$vA, VRRC:$vA))>;
|
||||
def : Pat<(v8i16 (vnot_conv VRRC:$vA)), (v8i16 (VNOR VRRC:$vA, VRRC:$vA))>;
|
||||
def : Pat<(v4i32 (vnot_conv VRRC:$vA)), (v4i32 (VNOR VRRC:$vA, VRRC:$vA))>;
|
||||
|
||||
|
||||
def : Pat<(v16i8 (and VRRC:$A, VRRC:$B)), (v16i8 (VAND VRRC:$A, VRRC:$B))>;
|
||||
def : Pat<(v8i16 (and VRRC:$A, VRRC:$B)), (v8i16 (VAND VRRC:$A, VRRC:$B))>;
|
||||
def : Pat<(v16i8 (or VRRC:$A, VRRC:$B)), (v16i8 (VOR VRRC:$A, VRRC:$B))>;
|
||||
def : Pat<(v8i16 (or VRRC:$A, VRRC:$B)), (v8i16 (VOR VRRC:$A, VRRC:$B))>;
|
||||
|
||||
def : Pat<(v16i8 (xor VRRC:$A, VRRC:$B)), (v16i8 (VXOR VRRC:$A, VRRC:$B))>;
|
||||
def : Pat<(v8i16 (xor VRRC:$A, VRRC:$B)), (v8i16 (VXOR VRRC:$A, VRRC:$B))>;
|
||||
def : Pat<(v16i8 (vnot (or VRRC:$A, VRRC:$B))),(v16i8 (VNOR VRRC:$A, VRRC:$B))>;
|
||||
@ -620,6 +626,17 @@ def : Pat<(v16i8 (and VRRC:$A, (vnot VRRC:$B))),
|
||||
def : Pat<(v8i16 (and VRRC:$A, (vnot VRRC:$B))),
|
||||
(v8i16 (VANDC VRRC:$A, VRRC:$B))>;
|
||||
|
||||
|
||||
def : Pat<(v16i8 (vnot_conv (or VRRC:$A, VRRC:$B))),(v16i8 (VNOR VRRC:$A, VRRC:$B))>;
|
||||
def : Pat<(v8i16 (vnot_conv (or VRRC:$A, VRRC:$B))),(v8i16 (VNOR VRRC:$A, VRRC:$B))>;
|
||||
def : Pat<(v4i32 (vnot_conv (or VRRC:$A, VRRC:$B))),(v4i32 (VNOR VRRC:$A, VRRC:$B))>;
|
||||
def : Pat<(v16i8 (and VRRC:$A, (vnot_conv VRRC:$B))),
|
||||
(v16i8 (VANDC VRRC:$A, VRRC:$B))>;
|
||||
def : Pat<(v8i16 (and VRRC:$A, (vnot_conv VRRC:$B))),
|
||||
(v8i16 (VANDC VRRC:$A, VRRC:$B))>;
|
||||
def : Pat<(v4i32 (and VRRC:$A, (vnot_conv VRRC:$B))),
|
||||
(v4i32 (VANDC VRRC:$A, VRRC:$B))>;
|
||||
|
||||
def : Pat<(fmul VRRC:$vA, VRRC:$vB),
|
||||
(VMADDFP VRRC:$vA, VRRC:$vB, (v4i32 (V_SET0)))>;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user