Skip to content

Commit 440f762

Browse files
committed
[SLP] Add CHECK line with apple-m1 for SLP test with extracts.
1 parent cbcb48a commit 440f762

File tree

1 file changed

+56
-1
lines changed

1 file changed

+56
-1
lines changed

llvm/test/Transforms/SLPVectorizer/AArch64/external-use-icmp.ll

Lines changed: 56 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 4
2-
; RUN: opt -S --passes=slp-vectorizer -mtriple=aarch64 -slp-threshold=-20 -slp-vectorize-hor=0 < %s | FileCheck %s
2+
; RUN: opt -S --passes=slp-vectorizer -mtriple=aarch64 -slp-threshold=-20 -slp-vectorize-hor=0 < %s | FileCheck --check-prefix=DEFAULT %s
3+
; RUN: opt -S --passes=slp-vectorizer -mtriple=aarch64 -slp-threshold=-20 -slp-vectorize-hor=0 -mcpu=apple-m1 < %s | FileCheck --check-prefix=APPLE-M1 %s
34

45
define i16 @foo(i16 %in1, i16 %in2) {
56
; CHECK-LABEL: define i16 @foo(
@@ -29,6 +30,60 @@ define i16 @foo(i16 %in1, i16 %in2) {
2930
; CHECK-NEXT: [[ADD3:%.*]] = add nuw nsw i16 [[ADD2]], [[ZEXT3_2]]
3031
; CHECK-NEXT: ret i16 [[ADD3]]
3132
;
33+
; DEFAULT-LABEL: define i16 @foo(
34+
; DEFAULT-SAME: i16 [[IN1:%.*]], i16 [[IN2:%.*]]) {
35+
; DEFAULT-NEXT: entry:
36+
; DEFAULT-NEXT: [[TMP0:%.*]] = insertelement <2 x i16> poison, i16 [[IN1]], i32 0
37+
; DEFAULT-NEXT: [[TMP1:%.*]] = shufflevector <2 x i16> [[TMP0]], <2 x i16> poison, <2 x i32> zeroinitializer
38+
; DEFAULT-NEXT: [[TMP2:%.*]] = zext <2 x i16> [[TMP1]] to <2 x i64>
39+
; DEFAULT-NEXT: [[TMP3:%.*]] = insertelement <2 x i16> poison, i16 [[IN2]], i32 0
40+
; DEFAULT-NEXT: [[TMP4:%.*]] = shufflevector <2 x i16> [[TMP3]], <2 x i16> poison, <2 x i32> zeroinitializer
41+
; DEFAULT-NEXT: [[TMP5:%.*]] = zext <2 x i16> [[TMP4]] to <2 x i64>
42+
; DEFAULT-NEXT: [[TMP6:%.*]] = mul nuw nsw <2 x i64> [[TMP5]], [[TMP2]]
43+
; DEFAULT-NEXT: [[TMP7:%.*]] = and <2 x i64> [[TMP6]], splat (i64 65535)
44+
; DEFAULT-NEXT: [[TMP8:%.*]] = icmp ne <2 x i64> [[TMP7]], splat (i64 65533)
45+
; DEFAULT-NEXT: [[TMP9:%.*]] = extractelement <2 x i1> [[TMP8]], i32 1
46+
; DEFAULT-NEXT: [[ZEXT3_1:%.*]] = zext i1 [[TMP9]] to i16
47+
; DEFAULT-NEXT: [[TMP10:%.*]] = extractelement <2 x i64> [[TMP6]], i32 1
48+
; DEFAULT-NEXT: [[CMP2_1:%.*]] = icmp ne i64 [[TMP10]], 196605
49+
; DEFAULT-NEXT: [[ZEXT4_1:%.*]] = zext i1 [[CMP2_1]] to i16
50+
; DEFAULT-NEXT: [[ADD1:%.*]] = add nuw nsw i16 [[ZEXT3_1]], [[ZEXT4_1]]
51+
; DEFAULT-NEXT: [[TMP11:%.*]] = extractelement <2 x i1> [[TMP8]], i32 0
52+
; DEFAULT-NEXT: [[ZEXT3_2:%.*]] = zext i1 [[TMP11]] to i16
53+
; DEFAULT-NEXT: [[TMP12:%.*]] = extractelement <2 x i64> [[TMP6]], i32 0
54+
; DEFAULT-NEXT: [[CMP2_2:%.*]] = icmp ne i64 [[TMP12]], 196605
55+
; DEFAULT-NEXT: [[ZEXT4_2:%.*]] = zext i1 [[CMP2_2]] to i16
56+
; DEFAULT-NEXT: [[ADD2:%.*]] = add nuw nsw i16 [[ADD1]], [[ZEXT4_2]]
57+
; DEFAULT-NEXT: [[ADD3:%.*]] = add nuw nsw i16 [[ADD2]], [[ZEXT3_2]]
58+
; DEFAULT-NEXT: ret i16 [[ADD3]]
59+
;
60+
; APPLE-M1-LABEL: define i16 @foo(
61+
; APPLE-M1-SAME: i16 [[IN1:%.*]], i16 [[IN2:%.*]]) #[[ATTR0:[0-9]+]] {
62+
; APPLE-M1-NEXT: entry:
63+
; APPLE-M1-NEXT: [[TMP0:%.*]] = insertelement <2 x i16> poison, i16 [[IN1]], i32 0
64+
; APPLE-M1-NEXT: [[TMP1:%.*]] = shufflevector <2 x i16> [[TMP0]], <2 x i16> poison, <2 x i32> zeroinitializer
65+
; APPLE-M1-NEXT: [[TMP2:%.*]] = zext <2 x i16> [[TMP1]] to <2 x i64>
66+
; APPLE-M1-NEXT: [[TMP3:%.*]] = insertelement <2 x i16> poison, i16 [[IN2]], i32 0
67+
; APPLE-M1-NEXT: [[TMP4:%.*]] = shufflevector <2 x i16> [[TMP3]], <2 x i16> poison, <2 x i32> zeroinitializer
68+
; APPLE-M1-NEXT: [[TMP5:%.*]] = zext <2 x i16> [[TMP4]] to <2 x i64>
69+
; APPLE-M1-NEXT: [[TMP6:%.*]] = mul nuw nsw <2 x i64> [[TMP5]], [[TMP2]]
70+
; APPLE-M1-NEXT: [[TMP7:%.*]] = and <2 x i64> [[TMP6]], splat (i64 65535)
71+
; APPLE-M1-NEXT: [[TMP8:%.*]] = icmp ne <2 x i64> [[TMP7]], splat (i64 65533)
72+
; APPLE-M1-NEXT: [[TMP9:%.*]] = extractelement <2 x i1> [[TMP8]], i32 1
73+
; APPLE-M1-NEXT: [[ZEXT3_1:%.*]] = zext i1 [[TMP9]] to i16
74+
; APPLE-M1-NEXT: [[TMP10:%.*]] = extractelement <2 x i64> [[TMP6]], i32 1
75+
; APPLE-M1-NEXT: [[CMP2_1:%.*]] = icmp ne i64 [[TMP10]], 196605
76+
; APPLE-M1-NEXT: [[ZEXT4_1:%.*]] = zext i1 [[CMP2_1]] to i16
77+
; APPLE-M1-NEXT: [[ADD1:%.*]] = add nuw nsw i16 [[ZEXT3_1]], [[ZEXT4_1]]
78+
; APPLE-M1-NEXT: [[TMP11:%.*]] = extractelement <2 x i1> [[TMP8]], i32 0
79+
; APPLE-M1-NEXT: [[ZEXT3_2:%.*]] = zext i1 [[TMP11]] to i16
80+
; APPLE-M1-NEXT: [[TMP12:%.*]] = extractelement <2 x i64> [[TMP6]], i32 0
81+
; APPLE-M1-NEXT: [[CMP2_2:%.*]] = icmp ne i64 [[TMP12]], 196605
82+
; APPLE-M1-NEXT: [[ZEXT4_2:%.*]] = zext i1 [[CMP2_2]] to i16
83+
; APPLE-M1-NEXT: [[ADD2:%.*]] = add nuw nsw i16 [[ADD1]], [[ZEXT4_2]]
84+
; APPLE-M1-NEXT: [[ADD3:%.*]] = add nuw nsw i16 [[ADD2]], [[ZEXT3_2]]
85+
; APPLE-M1-NEXT: ret i16 [[ADD3]]
86+
;
3287
entry:
3388
%zext1_1 = zext i16 %in1 to i64
3489
%zext2_1 = zext i16 %in2 to i64

0 commit comments

Comments
 (0)