]> granicus.if.org Git - clang/commit
[mips][msa] Added support for matching bins[lr]i.[bhwd] from normal IR (i.e. not...
authorDaniel Sanders <daniel.sanders@imgtec.com>
Wed, 30 Oct 2013 14:45:14 +0000 (14:45 +0000)
committerDaniel Sanders <daniel.sanders@imgtec.com>
Wed, 30 Oct 2013 14:45:14 +0000 (14:45 +0000)
commit6167d7fb789fe72d6c40b5de2ec75213407bfaa0
tree13f743b82a5816dd50c6c8bcdc0fd9b556ffc5b7
parente58a58d7dde40eef96faf92ce921b2cc5427a1cb
[mips][msa] Added support for matching bins[lr]i.[bhwd] from normal IR (i.e. not intrinsics)

This required correcting the definition of the bins[lr]i intrinsics because
the result is also the first operand.

It also required removing the (arbitrary) check for 32-bit immediates in
MipsSEDAGToDAGISel::selectVSplat().

Currently using binsli.d with 2 bits set in the mask doesn't select binsli.d
because the constant is legalized into a ConstantPool. Similar things can
happen with binsri.d with more than 10 bits set in the mask. The resulting
code when this happens is correct but not optimal.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193687 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Basic/BuiltinsMips.def
test/CodeGen/builtins-mips-msa.c