[PATCH] [AArch64] Change default legalization behavior of v1i32 to be widen to v2i32 instead of scalarization

Hao Liu Hao.Liu at arm.com
Mon Oct 20 03:18:48 PDT 2014


Hi Ahmed,

I think we have to promote v1i1 to v1i64 for AArch64 backend. As we
(1) can not widen it to any vNi1 types, as there isn't any vNi1 legal.
(2) can not scalarize it. Even if we add logic to scalarize sitofp, the GetScalarizedVector method still assumes all operands have been scalarized. But as v1i64 is legal, it will never scalarize this operand. So it will result in an assertion failure in GetScalarizedVector method.
(3) can not split it, as it only has one element.

So the only choice seems to be promoting it to v1i64 in AArch64 backend.

For the issue about
    %rhs_t = trunc <1 x i16> %rhs to <1 x i1>
I don't try promoting v1i1 to v1i64, so I don't know the root cause. I just think we can still fix this.

Thanks,
-Hao

http://reviews.llvm.org/D4322






More information about the llvm-commits mailing list