[PATCH] [AArch64] Support ISD::SIGN_EXTEND_INREG
Ana Pazos
apazos at codeaurora.org
Fri Jan 3 10:08:42 PST 2014
Hi Jiangning,
I happened to be looking at similar sign extend inreg failures.
We ran some benchmakrs with -mfpu=neon flag on and noticed failures due to
sign_extend_inreg.
For example we see sign_extend_inreg(v2i32, v2i16), sign_extend_inreg(v4i16,
v8i8). Your patch does not catch all cases.
This is what I suggest:
- Loop trough all vector types and setOperationAction to Expand
- For the vector types we can handle with hardware instruction, do
custom lowering:
o sign extend inreg for 8H/8B, 4S/4H. 2D/2S can use SXTL (alias to SSHLL
Vd, Vn #0)
o Sign extend of 8B, 16B, 4H, H, 2S, 4S, 2D can use the combo Shift Lef t+
Shift Right immediate.
Do you agree?
Let me know and we can provide the further changes.
Ana.
From: llvm-commits-bounces at cs.uiuc.edu
[mailto:llvm-commits-bounces at cs.uiuc.edu] On Behalf Of Jiangning Liu
Sent: Thursday, January 02, 2014 10:47 PM
To: llvm-commits at cs.uiuc.edu for LLVM
Subject: [PATCH] [AArch64] Support ISD::SIGN_EXTEND_INREG
Hi,
Attached patch is to lower ISD::SIGN_EXTEND_INREG. Review, please!
--
Thanks,
-Jiangning
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140103/2e5c14a5/attachment.html>
More information about the llvm-commits
mailing list