[llvm] e892193 - [SLP][NFC]Add a test for spill cost, NFC.

Alexey Bataev via llvm-commits llvm-commits at lists.llvm.org
Fri May 26 11:24:34 PDT 2023


Author: Alexey Bataev
Date: 2023-05-26T11:04:46-07:00
New Revision: e892193cc8ff31e7357bfb5cd9e5a277e42cda9e

URL: https://github.com/llvm/llvm-project/commit/e892193cc8ff31e7357bfb5cd9e5a277e42cda9e
DIFF: https://github.com/llvm/llvm-project/commit/e892193cc8ff31e7357bfb5cd9e5a277e42cda9e.diff

LOG: [SLP][NFC]Add a test for spill cost, NFC.

Added: 
    llvm/test/Transforms/SLPVectorizer/AArch64/landing_pad.ll

Modified: 
    

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/SLPVectorizer/AArch64/landing_pad.ll b/llvm/test/Transforms/SLPVectorizer/AArch64/landing_pad.ll
new file mode 100644
index 0000000000000..be5389ba8a09f
--- /dev/null
+++ b/llvm/test/Transforms/SLPVectorizer/AArch64/landing_pad.ll
@@ -0,0 +1,144 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
+; RUN: opt < %s -passes=slp-vectorizer,verify -slp-threshold=-99999 -mtriple=aarch64-unknown-linux -S -pass-remarks-output=%t | FileCheck %s
+; RUN: FileCheck --input-file=%t --check-prefix=YAML %s
+
+; YAML-LABEL: --- !Passed
+; YAML-NEXT: Pass:            slp-vectorizer
+; YAML-NEXT: Name:            VectorizedList
+; YAML-NEXT: Function:        foo
+; YAML-NEXT: Args:
+; YAML-NEXT:   - String:          'SLP vectorized with cost '
+; YAML-NEXT:   - Cost:            '3'
+; YAML-NEXT:   - String:          ' and with tree size '
+; YAML-NEXT:   - TreeSize:        '2'
+
+; YAML-LABEL: --- !Passed
+; YAML-NEXT: Pass:            slp-vectorizer
+; YAML-NEXT: Name:            VectorizedList
+; YAML-NEXT: Function:        foo
+; YAML-NEXT: Args:
+; YAML-NEXT:   - String:          'SLP vectorized with cost '
+; YAML-NEXT:   - Cost:            '0'
+; YAML-NEXT:   - String:          ' and with tree size '
+; YAML-NEXT:   - TreeSize:        '3'
+
+; YAML-LABEL: --- !Passed
+; YAML-NEXT: Pass:            slp-vectorizer
+; YAML-NEXT: Name:            VectorizedList
+; YAML-NEXT: Function:        foo
+; YAML-NEXT: Args:
+; YAML-NEXT:   - String:          'SLP vectorized with cost '
+; YAML-NEXT:   - Cost:            '-3'
+; YAML-NEXT:   - String:          ' and with tree size '
+; YAML-NEXT:   - TreeSize:        '9'
+
+define void @foo() personality ptr @bar {
+; CHECK-LABEL: @foo(
+; CHECK-NEXT:  bb1:
+; CHECK-NEXT:    br label [[BB3:%.*]]
+; CHECK:       bb2.loopexit:
+; CHECK-NEXT:    br label [[BB2:%.*]]
+; CHECK:       bb2:
+; CHECK-NEXT:    [[TMP0:%.*]] = phi <2 x i64> [ poison, [[BB9:%.*]] ], [ poison, [[BB2_LOOPEXIT:%.*]] ]
+; CHECK-NEXT:    [[TMP1:%.*]] = phi <2 x i64> [ [[TMP7:%.*]], [[BB9]] ], [ poison, [[BB2_LOOPEXIT]] ]
+; CHECK-NEXT:    ret void
+; CHECK:       bb3:
+; CHECK-NEXT:    [[TMP2:%.*]] = phi <2 x i64> [ [[TMP4:%.*]], [[BB6:%.*]] ], [ poison, [[BB1:%.*]] ]
+; CHECK-NEXT:    [[TMP3:%.*]] = invoke i64 poison(ptr addrspace(1) nonnull poison, i64 0, i64 0, i64 poison) [ "deopt"() ]
+; CHECK-NEXT:    to label [[BB4:%.*]] unwind label [[BB10:%.*]]
+; CHECK:       bb4:
+; CHECK-NEXT:    br i1 poison, label [[BB11:%.*]], label [[BB5:%.*]]
+; CHECK:       bb5:
+; CHECK-NEXT:    br label [[BB7:%.*]]
+; CHECK:       bb6:
+; CHECK-NEXT:    [[TMP4]] = phi <2 x i64> [ <i64 0, i64 poison>, [[BB8:%.*]] ]
+; CHECK-NEXT:    br label [[BB3]]
+; CHECK:       bb7:
+; CHECK-NEXT:    [[LOCAL_5_84111:%.*]] = phi i64 [ poison, [[BB8]] ], [ poison, [[BB5]] ]
+; CHECK-NEXT:    [[TMP5:%.*]] = insertelement <2 x i64> poison, i64 [[LOCAL_5_84111]], i32 0
+; CHECK-NEXT:    [[TMP6:%.*]] = invoke i64 poison(ptr addrspace(1) nonnull poison, i64 poison, i64 poison, i64 poison) [ "deopt"() ]
+; CHECK-NEXT:    to label [[BB8]] unwind label [[BB12:%.*]]
+; CHECK:       bb8:
+; CHECK-NEXT:    br i1 poison, label [[BB7]], label [[BB6]]
+; CHECK:       bb9:
+; CHECK-NEXT:    [[INDVARS_IV528799:%.*]] = phi i64 [ poison, [[BB10]] ], [ poison, [[BB12]] ]
+; CHECK-NEXT:    [[TMP7]] = phi <2 x i64> [ [[TMP8:%.*]], [[BB10]] ], [ [[TMP9:%.*]], [[BB12]] ]
+; CHECK-NEXT:    br label [[BB2]]
+; CHECK:       bb10:
+; CHECK-NEXT:    [[TMP8]] = phi <2 x i64> [ [[TMP2]], [[BB3]] ]
+; CHECK-NEXT:    [[LANDING_PAD68:%.*]] = landingpad { ptr, i64 }
+; CHECK-NEXT:    cleanup
+; CHECK-NEXT:    br label [[BB9]]
+; CHECK:       bb11:
+; CHECK-NEXT:    ret void
+; CHECK:       bb12:
+; CHECK-NEXT:    [[TMP9]] = phi <2 x i64> [ [[TMP5]], [[BB7]] ]
+; CHECK-NEXT:    [[LANDING_PAD149:%.*]] = landingpad { ptr, i64 }
+; CHECK-NEXT:    cleanup
+; CHECK-NEXT:    br label [[BB9]]
+;
+bb1:
+  br label %bb3
+
+bb2.loopexit:
+  br label %bb2
+
+bb2:
+  %local_8_3681 = phi i64 [ poison, %bb9 ], [ 1, %bb2.loopexit ]
+  %local_2_44 = phi i64 [ poison, %bb9 ], [ poison, %bb2.loopexit ]
+  %local_5_47 = phi i64 [ %local_5_19, %bb9 ], [ poison, %bb2.loopexit ]
+  %local_10_52 = phi i64 [ %local_10_24, %bb9 ], [ poison, %bb2.loopexit ]
+  ret void
+
+bb3:
+  %local_10_38123 = phi i64 [ %.lcssa773, %bb6 ], [ poison, %bb1 ]
+  %local_5_33118 = phi i64 [ poison, %bb6 ], [ poison, %bb1 ]
+  %0 = invoke i64 poison(ptr addrspace(1) nonnull poison, i64 0, i64 0, i64 poison) [ "deopt"() ]
+  to label %bb4 unwind label %bb10
+
+bb4:
+  br i1 poison, label %bb11, label %bb5
+
+bb5:
+  br label %bb7
+
+bb6:
+  %.lcssa773 = phi i64 [ poison, %bb8 ]
+  %.lcssa770 = phi i64 [ 0, %bb8 ]
+  br label %bb3
+
+bb7:
+  %local_5_84111 = phi i64 [ poison, %bb8 ], [ poison, %bb5 ]
+  %1 = invoke i64 poison(ptr addrspace(1) nonnull poison, i64 poison, i64 poison, i64 poison) [ "deopt"() ]
+  to label %bb8 unwind label %bb12
+
+bb8:
+  br i1 poison, label %bb7, label %bb6
+
+bb9:
+  %indvars.iv528799 = phi i64 [ poison, %bb10 ], [ poison, %bb12 ]
+  %local_5_19 = phi i64 [ %local_5_33118.lcssa, %bb10 ], [ %local_5_84111.lcssa, %bb12 ]
+  %local_10_24 = phi i64 [ %local_10_38123.lcssa, %bb10 ], [ %local_10_89113.lcssa, %bb12 ]
+  br label %bb2
+
+bb10:
+  %local_10_38123.lcssa = phi i64 [ %local_10_38123, %bb3 ]
+  %local_5_33118.lcssa = phi i64 [ %local_5_33118, %bb3 ]
+  %landing_pad68 = landingpad { ptr, i64 }
+  cleanup
+  br label %bb9
+
+bb11:
+  ret void
+
+bb12:
+  %local_10_89113.lcssa = phi i64 [ poison, %bb7 ]
+  %local_5_84111.lcssa = phi i64 [ %local_5_84111, %bb7 ]
+  %landing_pad149 = landingpad { ptr, i64 }
+  cleanup
+  br label %bb9
+}
+
+declare ptr @bar()
+
+


        


More information about the llvm-commits mailing list