[PATCH] D115955: [SLP]Alternate vectorization for cmp instructions.

Steven Johnson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 2 11:14:06 PST 2022


srj added a comment.

I have enclosed the smallest before-and-after cases that I've been able to narrow it down to, so far. I am going to hold off on trying to reduce it further until I hear back from you as to whether this is helpful or not.

The .ll files are what Halide produces via use with LLVM with the given commit (`17a39aecd1703d94e2b1dff0dedd690cc1b0aaaf` is correct behavior, `83620bd2ad867f706c699d0f2b8be10e43d9f3d7` is this commit with the incorrect behavior).

I realize this isn't very small, but I think the relevant sections are line 779 in the "before" case (` %.inv = icmp slt i64 %points_image2.total_extent.2, 2147483648`), which seems to get incorrectly vectorized into a `sgt` in the "after" case (line 785 or so).

The .s files are the resulting assembly on x86-64. Note that we are configured to generate SSE4.1 and AVX, but *not* AVX2.

F21958067: Archive.zip <https://reviews.llvm.org/F21958067>


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D115955/new/

https://reviews.llvm.org/D115955



More information about the llvm-commits mailing list