Skip to content

Commit 0dc33c0

Browse files
committed
[SLP][NFC]Add a test for alternate vectorization in cmp instructions
with same/swapped predicate.
1 parent ebc8153 commit 0dc33c0

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2+
; RUN: opt -slp-vectorizer -mcpu=skx -S -o - -mtriple=x86_64-unknown < %s | FileCheck %s
3+
4+
define void @test(double* %0, double %1) {
5+
; CHECK-LABEL: @test(
6+
; CHECK-NEXT: [[TMP3:%.*]] = getelementptr inbounds double, double* [[TMP0:%.*]], i32 6
7+
; CHECK-NEXT: [[TMP4:%.*]] = getelementptr inbounds double, double* [[TMP0]], i32 7
8+
; CHECK-NEXT: br label [[TMP5:%.*]]
9+
; CHECK: 5:
10+
; CHECK-NEXT: [[TMP6:%.*]] = insertelement <2 x double> <double 0.000000e+00, double poison>, double [[TMP1:%.*]], i32 1
11+
; CHECK-NEXT: br label [[TMP7:%.*]]
12+
; CHECK: 7:
13+
; CHECK-NEXT: [[TMP8:%.*]] = load double, double* null, align 8
14+
; CHECK-NEXT: [[TMP9:%.*]] = insertelement <2 x double> <double 0.000000e+00, double poison>, double [[TMP8]], i32 1
15+
; CHECK-NEXT: [[TMP10:%.*]] = fcmp olt <2 x double> [[TMP6]], [[TMP9]]
16+
; CHECK-NEXT: [[TMP11:%.*]] = select <2 x i1> [[TMP10]], <2 x double> zeroinitializer, <2 x double> zeroinitializer
17+
; CHECK-NEXT: [[TMP12:%.*]] = fmul <2 x double> [[TMP11]], zeroinitializer
18+
; CHECK-NEXT: [[TMP13:%.*]] = fadd <2 x double> zeroinitializer, [[TMP12]]
19+
; CHECK-NEXT: [[TMP14:%.*]] = bitcast double* [[TMP3]] to <2 x double>*
20+
; CHECK-NEXT: store <2 x double> [[TMP13]], <2 x double>* [[TMP14]], align 8
21+
; CHECK-NEXT: br label [[TMP7]]
22+
;
23+
%3 = getelementptr inbounds double, double* %0, i32 6
24+
%4 = getelementptr inbounds double, double* %0, i32 7
25+
br label %5
26+
27+
5: ; preds = %2
28+
br label %6
29+
30+
6: ; preds = %6, %5
31+
%7 = load double, double* null, align 8
32+
%8 = fcmp olt double 0.000000e+00, 0.000000e+00
33+
%9 = select i1 %8, double 0.000000e+00, double 0.000000e+00
34+
%10 = fcmp ogt double %7, %1
35+
%11 = select i1 %10, double 0.000000e+00, double 0.000000e+00
36+
%12 = fmul double %9, 0.000000e+00
37+
%13 = fmul double 0.000000e+00, %11
38+
%14 = fadd double 0.000000e+00, %12
39+
store double %14, double* %3, align 8
40+
%15 = fadd double 0.000000e+00, %13
41+
store double %15, double* %4, align 8
42+
br label %6
43+
}

0 commit comments

Comments
 (0)