[llvm] [NFC][LV] Improve ee with sideeffects legality test (PR #158275)

via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 12 04:18:39 PDT 2025


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-llvm-transforms

Author: Graham Hunter (huntergr-arm)

<details>
<summary>Changes</summary>

Addressing postcommit comments for 54fc5367f63cca8e011d93bbd55764b0a7ecbbd5

---
Full diff: https://github.com/llvm/llvm-project/pull/158275.diff


1 Files Affected:

- (modified) llvm/test/Transforms/LoopVectorize/early_exit_store_legality.ll (+17-22) 


``````````diff
diff --git a/llvm/test/Transforms/LoopVectorize/early_exit_store_legality.ll b/llvm/test/Transforms/LoopVectorize/early_exit_store_legality.ll
index 4226c5d9e650b..0f5f8876b6ef1 100644
--- a/llvm/test/Transforms/LoopVectorize/early_exit_store_legality.ll
+++ b/llvm/test/Transforms/LoopVectorize/early_exit_store_legality.ll
@@ -604,36 +604,31 @@ exit:
 
 ;; ICE was caused by assert for the load used in the uncountable exit condition
 ;; being guaranteed to execute.
- at e = external addrspace(21) global [4 x i8]
-define void @crash_conditional_load_for_uncountable_exit() {
+ at ee.global = external global [4 x i8]
+define void @crash_conditional_load_for_uncountable_exit(ptr dereferenceable(40) noalias %store.area) {
 ; CHECK-LABEL: LV: Checking a loop in 'crash_conditional_load_for_uncountable_exit'
 ; CHECK:       LV: Not vectorizing: Load for uncountable exit not guaranteed to execute.
 entry:
-  br label %cont
-
-handler.out_of_bounds:
-  unreachable
+  br label %for.body
 
-cont:
-  %h.06 = phi i64 [ 0, %entry ], [ %inc, %a.exit ]
-  %arrayidx = getelementptr i8, ptr addrspace(21) @e, i64 %h.06
-  br i1 false, label %cont1, label %handler.type_mismatch
+for.body:
+  %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.inc ]
+  %ee.addr = getelementptr i8, ptr @ee.global, i64 %iv
+  br i1 false, label %ee.block, label %invalid.block
 
-handler.type_mismatch:
-  unreachable
+ee.block:
+  %ee.val = load i8, ptr %ee.addr, align 1
+  store i16 0, ptr %store.area, align 2
+  %ee.cmp = icmp eq i8 %ee.val, 0
+  br i1 %ee.cmp, label %for.inc, label %invalid.block
 
-cont1:
-  %0 = load i8, ptr addrspace(21) %arrayidx, align 1
-  store i16 0, ptr null, align 2
-  %cmp.not.i.i = icmp eq i8 %0, 0
-  br i1 %cmp.not.i.i, label %a.exit, label %if.then.i.i
+for.inc:
+  %iv.next = add nuw nsw i64 %iv, 1
+  %counted.cond = icmp eq i64 %iv.next, 10
+  br i1 %counted.cond, label %invalid.block, label %for.body
 
-if.then.i.i:
+invalid.block:
   unreachable
-
-a.exit:
-  %inc = add i64 %h.06, 1
-  br i1 true, label %handler.out_of_bounds, label %cont
 }
 
 

``````````

</details>


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


More information about the llvm-commits mailing list