DescriptionLower icmp operations between vector values.
SSE2 only has signed integer comparison. Unsigned compares are
implemented by inverting the sign bits of the operands and doing a
signed compare.
A common pattern in clang generated IR is a vector compare which
generates an i1 vector followed by a sign extension of the result of the
compare. The x86 comparison instructions already generate sign extended
values, so we can eliminate unnecessary sext operations that follow
compares in the IR.
BUG=none
R=jvoung@chromium.org, stichnot@chromium.org
Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-subzero.git;a=commit;h=9a0168a
Patch Set 1 #Patch Set 2 : Formatting #Patch Set 3 : Do llvm-mc assembly validation in the lit test #Patch Set 4 : Pass -arch=x86 to llvm-mc. #Patch Set 5 : Pass -filetype=obj to llvm-mc. #
Total comments: 12
Patch Set 6 : Address comments, add CHECK-LABEL directives to test #
Total comments: 2
Patch Set 7 : Fix whitespace in comment #Patch Set 8 : Fix another whitespace issue #Patch Set 9 : Remove unused typedefs. #
Messages
Total messages: 9 (0 generated)
|