diff options
author | Juergen Ributzka <juergen@apple.com> | 2014-08-04 21:49:51 +0000 |
---|---|---|
committer | Juergen Ributzka <juergen@apple.com> | 2014-08-04 21:49:51 +0000 |
commit | 53533e885a1b82d7eb88e7e0840012c52524af7e (patch) | |
tree | cfe4b0e217ae2f94c11eddf9b3e8adac890d5e9a /clang/lib/Analysis/ThreadSafety.cpp | |
parent | ac021bac4e0a267245d04a50c7fade6b1e434869 (diff) | |
download | bcm5719-llvm-53533e885a1b82d7eb88e7e0840012c52524af7e.tar.gz bcm5719-llvm-53533e885a1b82d7eb88e7e0840012c52524af7e.zip |
[FastISel][AArch64] Fix shift lowering for i8 and i16 value types.
This fix changes the parameters #r and #s that are passed to the UBFM/SBFM
instruction to get the zero/sign-extension for free.
The original problem was that the shift left would use the 32-bit shift even for
i8/i16 value types, which could leave the upper bits set with "garbage" values.
The arithmetic shift right on the other side would use the wrong MSB as sign-bit
to determine what bits to shift into the value.
This fixes <rdar://problem/17907720>.
llvm-svn: 214788
Diffstat (limited to 'clang/lib/Analysis/ThreadSafety.cpp')
0 files changed, 0 insertions, 0 deletions