R600/SI: Use ZeroOrNegativeOneBooleanContent
authorMatt Arsenault <Matthew.Arsenault@amd.com>
Wed, 26 Nov 2014 21:23:15 +0000 (21:23 +0000)
committerMatt Arsenault <Matthew.Arsenault@amd.com>
Wed, 26 Nov 2014 21:23:15 +0000 (21:23 +0000)
commitfcdddf96022ca5a3958204c43acd9e1b773468bb
treec3b3bd2a0d224f49b2a357b296fff60e42be6b18
parent6e0f9f8d61be1535c2b5c18a0d7620a40b8be9ec
R600/SI: Use ZeroOrNegativeOneBooleanContent

This sort of doesn't matter since the setcc type is i1, but
this previously was using the default UndefinedBooleanContent. This
makes it more consistent with R600. This enables more optimizations
which typically give up on UndefinedBooleanContent. For example,
there is already a special case target DAG combine for
setcc + sext which can be eliminated in favor of what the generic
DAG combiner can do if it assumes boolean values are sign extended.
Since -1 is an inline immediate, using it is basically free and the
backend already uses it when a boolean value is needed in a wider type.

llvm-svn: 222850
llvm/lib/Target/R600/AMDGPUISelLowering.cpp
llvm/lib/Target/R600/R600ISelLowering.cpp