[llvm] [VPlan] Add VPIRAttributes; use for VPWidenCallRecipe. (PR #207075)
Ramkumar Ramachandra via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 15 01:08:05 PDT 2026
================
@@ -69,6 +72,72 @@ exit:
ret void
}
+; The call site carries a propagatable (range) and a non-propagatable
+; (noundef) attribute on both the argument and return. Make sure only the valid
+; attributes are printed.
+define void @wide_call_attrs_filtered_and_combined(ptr noalias %in.ptr, ptr noalias %out.ptr) {
+; CHECK-LABEL: VPlan for loop in 'wide_call_attrs_filtered_and_combined'
+; CHECK: VPlan ' for UF>=1' {
+; CHECK-NEXT: Live-in vp<[[VP0:%[0-9]+]]> = VF
+; CHECK-NEXT: Live-in vp<[[VP1:%[0-9]+]]> = VF * UF
+; CHECK-NEXT: Live-in vp<[[VP2:%[0-9]+]]> = vector-trip-count
+; CHECK-NEXT: Live-in ir<1000> = original trip-count
+; CHECK-EMPTY:
+; CHECK-NEXT: ir-bb<entry>:
+; CHECK-NEXT: Successor(s): scalar.ph, vector.ph
+; CHECK-EMPTY:
+; CHECK-NEXT: vector.ph:
+; CHECK-NEXT: Successor(s): vector loop
+; CHECK-EMPTY:
+; CHECK-NEXT: <x1> vector loop: {
+; CHECK-NEXT: vp<[[VP3:%[0-9]+]]> = CANONICAL-IV
+; CHECK-EMPTY:
+; CHECK-NEXT: vector.body:
+; CHECK-NEXT: ir<%iv> = WIDEN-INDUCTION nuw nsw ir<0>, ir<1>, vp<[[VP0]]>
+; CHECK-NEXT: CLONE ir<%in.gep> = getelementptr inbounds ir<%in.ptr>, ir<%iv>
+; CHECK-NEXT: vp<[[VP4:%[0-9]+]]> = vector-pointer inbounds ir<%in.gep>, ir<1>
+; CHECK-NEXT: WIDEN ir<%in> = load vp<[[VP4]]>
+; CHECK-NEXT: WIDEN-CALL ir<%call> = call range(i64 0, 60) @bar(range(i64 0, 50) ir<%in>) (using library function: vec_bar)
----------------
artagnon wrote:
"call range..." <- double space after call? Why is noundef not being printed?
https://github.com/llvm/llvm-project/pull/207075
More information about the llvm-commits
mailing list