[llvm] [LoopInterchange] Supported Imperfect Loop Nests (PR #199511)

Ryotaro Kasuga via llvm-commits llvm-commits at lists.llvm.org
Mon May 25 05:30:49 PDT 2026


================
@@ -0,0 +1,176 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
+; RUN: opt -S -passes='loop-interchange' -cache-line-size=64 < %s | FileCheck %s
+
+;  // Loop nest with multiple loops at same depth
+;    for (i = 0; i < 64; i++)
+;    {
+;      for (j = 0; j < 64; j++)
+;        {
+;          #pragma clang loop unroll(disable)
+;          for (r = 0; r < 64; r++)
+;            {
+;              C[j][r] = B[j][r] + i;
+;            }
+;        }
+;
+;      for (k = 0; k < 64; k++)
+;        {
+;          #pragma clang loop unroll(disable)
----------------
kasuga-fj wrote:

```suggestion
;          for (r = 0; r < 64; r++)
;            {
;              C[j][r] = B[j][r] + i;
;            }
;        }
;
;      for (k = 0; k < 64; k++)
;        {
```

The pseudo code doesn't need to be strictly equivalent to the original code. Instead, it would be better to make it concise for readability.

https://github.com/llvm/llvm-project/pull/199511


More information about the llvm-commits mailing list