[PATCH] D35498: [LoopVectorizer] Use two step casting for float to pointer types.

Manoj Gupta via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 31 12:42:37 PDT 2017


manojgupta marked 2 inline comments as done.
manojgupta added inline comments.


================
Comment at: test/CodeGen/ARM/loopvectorize_pr33804.ll:17
+; CHECK: vector.body
+; CHECK: store <8 x %struct.CvNode1D*>
+define void @cvCalcEMD2() local_unnamed_addr #0 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
----------------
Ayal wrote:
> Best force vectorization width to 8 if that's the VF we expect; or expect a vector store of any width.
Changed it to expect a vector store of any width since the concern is vectorizer should not crash, not the vectorized size.


================
Comment at: test/CodeGen/ARM/loopvectorize_pr33804.ll:63
+}
+
+declare i32 @__gxx_personality_v0(...)
----------------
Ayal wrote:
> What about tests for float<->pointer conversions on interleaved groups of loads?
Because of my limited knowledge of how loop vectorizer works,  I am not yet able to create a test case for loads which triggers float <-> pointer casting. Will try to create a test case for loads in a follow up commit. 
I did add another test case for double <-> pointer for AArch64.


https://reviews.llvm.org/D35498





More information about the llvm-commits mailing list