[PATCH]Clang and AArch64 backend patches to support sshll/ushll instructions

Tim Northover t.p.northover at gmail.com
Mon Aug 12 13:46:35 PDT 2013


> -        The use of H as a new size modifier
>
> It seems what you need is just a condition to skip adding ‘q’ to the
> intrinsics name even when the type is classified as Q, correct?

I was mostly wondering why 'H' rather than any other random letter.
Presumably Hao chose it for a reason. But your later point certainly
has merit.

Actually, I was considering extending the capital-letters-as-modifiers
approach to the return/argument type string as well when I get a spare
moment. There has to be a better way to handle that than an entire
alphabet of random letters denoting who-knows-what.

> Something like adding a record field “isShiftPart2” or some more generic
> field so it can be reused by other intrinsics that have similar naming
> requirement.
>
> It will require a bit more clang changes, but it will be clearer what you
> are trying to do.
>
> What do you think?

That sounds like a good idea, though as you say there are more than
shifts that make use of it (xtn, various long and wide ops). The
fundamental point seems to be that instead of mangling with 'q', we
want to mangle with '_high'. "high-half" might be the closest I've
heard to a generally accepted name.

(Actually, that may answer my question "why H?". Oh well...).

Tim.




More information about the llvm-commits mailing list