[PATCH] AArch64: look up BuiltinID before calling EmitAArch64ScalarBuiltinExpr
Ana Pazos
apazos at codeaurora.org
Fri Feb 14 15:35:49 PST 2014
Hi Tim,
Can you please explain again why a table is used for the scalar intrinsics and not the other intrinisics? The other intrinsics also have long case statements.
Right now the scalar intriniscs are handled differently from the other intrinsics because we vectorize the inputs to use the v1ix and v1fx types and scalarize the result.
In the future, if we change the way we handle scalar types in neon, all these intrinscs will go through the same code as the non-scalar intriniscs, again you will have long case statements.
Thanks,
Ana.
-----Original Message-----
From: cfe-commits-bounces at cs.uiuc.edu [mailto:cfe-commits-bounces at cs.uiuc.edu] On Behalf Of Tim Northover
Sent: Friday, February 14, 2014 2:17 AM
To: t.p.northover at gmail.com
Cc: cfe-commits at cs.uiuc.edu
Subject: Re: [PATCH] AArch64: look up BuiltinID before calling EmitAArch64ScalarBuiltinExpr
I ended up finishing the work actually making use of this table and decided there wasn't actually any benefit to splitting it into two stages, so here's the complete idea.
I changed the code from referring directly to __builtin_neon_XYZ to just mentioning XYZ for two reasons: it allows automatic generation of the NameHint field which goes into LLVM IR on asserts builds, and it reduces the width of the table.
There are still a handful of 80 column violations (by no more than 3 chars), but I tend to think they're better than the alternatives at this stage.
How does the entire thing look?
Cheers.
Tim.
http://llvm-reviews.chandlerc.com/D2764
CHANGE SINCE LAST DIFF
http://llvm-reviews.chandlerc.com/D2764?vs=7058&id=7118#toc
Files:
lib/CodeGen/CGBuiltin.cpp
test/CodeGen/aarch64-neon-ld-sideeffect.c
utils/TableGen/NeonEmitter.cpp
More information about the cfe-commits
mailing list