[LLVM][IR] Use splat syntax when printing ConstantExpr based splats. (#116856)
[llvm-project.git] / llvm / test / Transforms / SLPVectorizer / X86 / crash_undef_mask_elem.ll
blob042e4d7ac7b209e577037a75dbf3b5b738c9b844
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt -passes=slp-vectorizer -S -o - -mtriple=x86_64 < %s | FileCheck %s
4 define void @main(i32 %x, i1 %b) {
5 ; CHECK-LABEL: @main(
6 ; CHECK-NEXT:  entry:
7 ; CHECK-NEXT:    br i1 [[B:%.*]], label [[L3:%.*]], label [[L1_THREAD:%.*]]
8 ; CHECK:       L1:
9 ; CHECK-NEXT:    br label [[L3]]
10 ; CHECK:       L1.thread:
11 ; CHECK-NEXT:    br label [[L3]]
12 ; CHECK:       L3:
13 ; CHECK-NEXT:    [[DOTPR21:%.*]] = phi i32 [ [[X:%.*]], [[ENTRY:%.*]] ], [ [[DOTPR21]], [[L1:%.*]] ], [ [[X]], [[L1_THREAD]] ]
14 ; CHECK-NEXT:    [[DOTOLD_PR15:%.*]] = phi i32 [ [[X]], [[ENTRY]] ], [ 0, [[L1]] ], [ [[X]], [[L1_THREAD]] ]
15 ; CHECK-NEXT:    [[H_1:%.*]] = phi i32 [ undef, [[ENTRY]] ], [ undef, [[L1]] ], [ undef, [[L1_THREAD]] ]
16 ; CHECK-NEXT:    [[I_2:%.*]] = phi i32 [ 1, [[ENTRY]] ], [ [[I_2]], [[L1]] ], [ 1, [[L1_THREAD]] ]
17 ; CHECK-NEXT:    [[K_3:%.*]] = phi i32 [ 0, [[ENTRY]] ], [ [[I_2]], [[L1]] ], [ 1, [[L1_THREAD]] ]
18 ; CHECK-NEXT:    [[G_1:%.*]] = phi i32 [ undef, [[ENTRY]] ], [ [[O_1:%.*]], [[L1]] ], [ undef, [[L1_THREAD]] ]
19 ; CHECK-NEXT:    [[M_3:%.*]] = phi i32 [ undef, [[ENTRY]] ], [ [[I_2]], [[L1]] ], [ 1, [[L1_THREAD]] ]
20 ; CHECK-NEXT:    [[O_1]] = phi i32 [ undef, [[ENTRY]] ], [ [[O_1]], [[L1]] ], [ undef, [[L1_THREAD]] ]
21 ; CHECK-NEXT:    br label [[L4:%.*]]
22 ; CHECK:       L4:
23 ; CHECK-NEXT:    br label [[L1]]
25 entry:
26   br i1 %b, label %L3, label %L1.thread
28 L1:
29   br label %L3
31 L1.thread:
32   br label %L3
34 L3:
35   %.pr21 = phi i32 [ %x, %entry ], [ %.pr21, %L1 ], [ %x, %L1.thread ]
36   %.old.pr15 = phi i32 [ %x, %entry ], [ 0, %L1 ], [ %x, %L1.thread ]
37   %h.1 = phi i32 [ undef, %entry ], [ undef, %L1 ], [ undef, %L1.thread ]
38   %i.2 = phi i32 [ 1, %entry ], [ %i.2, %L1 ], [ 1, %L1.thread ]
39   %k.3 = phi i32 [ 0, %entry ], [ %i.2, %L1 ], [ 1, %L1.thread ]
40   %g.1 = phi i32 [ undef, %entry ], [ %o.1, %L1 ], [ undef, %L1.thread ]
41   %m.3 = phi i32 [ undef, %entry ], [ %i.2, %L1 ], [ 1, %L1.thread ]
42   %o.1 = phi i32 [ undef, %entry ], [ %o.1, %L1 ], [ undef, %L1.thread ]
43   br label %L4
45 L4:
46   br label %L1