DescriptionSubzero: Be more strict about i1 calculations.
One issue is that the test_arith cross test defined functions on i1 but never actually invoked them.
Another issue is that the lowering was using 8-bit registers for i1 values, but was being sloppy about leaving stuff in the upper 7 bits, and then using all 8 bits for tests.
This takes the approach of explicitly masking the result whenever it's possible for the result to exceed one bit, such as trunc, fptosi, fptoui.
Another possibility might be to allow the upper 7 bits to stay sloppy, and explicitly only test the lower bit.
Additionally, some "CHECK: ret" lines were removed, since they aren't actually needed after the change to use CHECK-LABEL, and they are affected by an llvm-dump bug (which is fixed in LLVM 3.6).
BUG= none
R=jvoung@chromium.org
Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-subzero.git;a=commit;h=3ef786f
Patch Set 1 #Patch Set 2 : Revert unnecessary changes #
Total comments: 2
Patch Set 3 : Revert what turned out to be unnecessary changes #
Total comments: 4
Patch Set 4 : Add comments, clean up test file #
Total comments: 3
Patch Set 5 : Slight refactoring of lowering. New lit test file. #Patch Set 6 : Actually add the new test file this time #
Total comments: 6
Patch Set 7 : Update test after rebasing #Patch Set 8 : Make OPTM1 change similar to CHECK change #
Messages
Total messages: 14 (2 generated)
|