Details
Diff Detail
Event Timeline
clang/include/clang/Basic/arm_sve.td | ||
---|---|---|
1071–1075 | "Implemented using tbl" isn't really a helpful comment. I guess you're doing it this way so the lane doesn't have to be a constant? (And then I guess you can optimize it in the backend.) | |
clang/lib/CodeGen/CGBuiltin.cpp | ||
8093 | The select might not be the best approach. I mean, it's semantically correct, but the backend currently doesn't know how to lower a select like that. And even if it did, it's probably better to avoid generating it for now. Maybe this should use whilelo directly, since that's what the backend would eventually use anyway. |
clang/include/clang/Basic/arm_sve.td | ||
---|---|---|
1071–1075 | Yes that's right. I can probably clarify the comment a bit more. | |
clang/lib/CodeGen/CGBuiltin.cpp | ||
8093 |
Yes I noticed, that was the reason for D79356 (added as parent revision)
Is that because there are common optimisations on the select? I thought it would be safe to use the 'full vector' form of select where the predicate is a scalar (and both operands are splats) |
clang/lib/CodeGen/CGBuiltin.cpp | ||
---|---|---|
8093 | Yes, the idea would just be to avoid common optimizations. Maybe there aren't that many vector optimizations on a select with a scalar condition, though. If it isn't blowing up, I guess it's fine. |
"Implemented using tbl" isn't really a helpful comment.
I guess you're doing it this way so the lane doesn't have to be a constant? (And then I guess you can optimize it in the backend.)