]> granicus.if.org Git - clang/commit
Do not emit undefined lsrh/ashr for NEON shifts
authorAmaury de la Vieuville <amaury.dlv@gmail.com>
Fri, 4 Oct 2013 13:13:15 +0000 (13:13 +0000)
committerAmaury de la Vieuville <amaury.dlv@gmail.com>
Fri, 4 Oct 2013 13:13:15 +0000 (13:13 +0000)
commit7f0ff70c391afeb7811b7ddcb06bfbbd5c6cf8f9
tree2b08f26dbc749b498be5b322a39283c807ca545c
parentc0e83640ae656c76170b1389a5d72f440b1a7749
Do not emit undefined lsrh/ashr for NEON shifts

These IR instructions are undefined when the amount is equal to operand
size, but NEON right shifts support such shifts. Work around that by
emitting a different IR in these cases.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191953 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/CGBuiltin.cpp
lib/CodeGen/CodeGenFunction.h
test/CodeGen/aarch64-neon-shifts.c [new file with mode: 0644]
test/CodeGen/arm-neon-shifts.c [new file with mode: 0644]