[PATCH] [AArch64] Fix a build_vector pattern fail caused by defect in isBuildVectorAllZeros().

Kevin Qin kevinqindev at gmail.com
Mon Jun 23 20:23:15 PDT 2014


Hi Tim,

Thanks for your review. I enhanced isBuildVectorAllZeros() according to isBuildVectorAllones() which is just above it. I think it's meaningful to get it as robust as its brother function. For the word "problematic DAG", my understanding is you're referring to the constant larger than 16 bit width which is used to build a v4i16 vector. From my point of view, I'm not sure whether it's a "problematic DAG", because after legalization, DAG combiner may generate this kind of node in many paths. It's hard to avoid generating it unless we capture all paths that may create constant folding and guarantee those foldings only happen before legalization. I can do this for the path I observed, but I can't guarantee this kind of node won't be generated from other DAG combine path. So my suggestion is don't treat that node problematic, we should get our backend correctly handle that node as well.

Regards,
Kevin Qin

http://reviews.llvm.org/D4228






More information about the llvm-commits mailing list