1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 2; RUN: opt < %s -passes=slp-vectorizer -S -mtriple=x86_64-unknown-linux-gnu -mattr=+avx2 -slp-max-reg-size=128 | FileCheck %s 3 4define void @inst_size(ptr %a, <2 x i64> %b) { 5; CHECK-LABEL: @inst_size( 6; CHECK-NEXT: entry: 7; CHECK-NEXT: [[TMPL1:%.*]] = load i64, ptr [[A:%.*]], align 4 8; CHECK-NEXT: [[PTR2:%.*]] = getelementptr inbounds i64, ptr [[A]], i64 1 9; CHECK-NEXT: [[TMP0:%.*]] = load <2 x i64>, ptr [[PTR2]], align 4 10; CHECK-NEXT: [[PTR4:%.*]] = getelementptr inbounds i64, ptr [[A]], i64 3 11; CHECK-NEXT: [[TMPL4:%.*]] = load i64, ptr [[PTR4]], align 4 12; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <2 x i64> [[B:%.*]], <2 x i64> poison, <4 x i32> <i32 0, i32 poison, i32 poison, i32 poison> 13; CHECK-NEXT: [[TMP2:%.*]] = insertelement <4 x i64> [[TMP1]], i64 [[TMPL1]], i32 1 14; CHECK-NEXT: [[TMP3:%.*]] = call <4 x i64> @llvm.vector.insert.v4i64.v2i64(<4 x i64> [[TMP2]], <2 x i64> [[TMP0]], i64 2) 15; CHECK-NEXT: [[TMP4:%.*]] = icmp sgt <4 x i64> zeroinitializer, [[TMP3]] 16; CHECK-NEXT: [[T45:%.*]] = icmp sgt i64 0, [[TMPL4]] 17; CHECK-NEXT: br label [[BLOCK:%.*]] 18; CHECK: block: 19; CHECK-NEXT: [[PHI5:%.*]] = phi i1 [ [[T45]], [[ENTRY:%.*]] ] 20; CHECK-NEXT: [[TMP5:%.*]] = phi <4 x i1> [ [[TMP4]], [[ENTRY]] ] 21; CHECK-NEXT: ret void 22; 23entry: 24 %val = extractelement <2 x i64> %b, i32 0 25 %tmpl1 = load i64, ptr %a, align 4 26 %ptr2 = getelementptr inbounds i64, ptr %a, i64 1 27 %tmpl2 = load i64, ptr %ptr2, align 4 28 %ptr3 = getelementptr inbounds i64, ptr %a, i64 2 29 %tmpl3 = load i64, ptr %ptr3, align 4 30 %ptr4 = getelementptr inbounds i64, ptr %a, i64 3 31 %tmpl4 = load i64, ptr %ptr4, align 4 32 %t41 = icmp sgt i64 0, %val 33 %t42 = icmp sgt i64 0, %tmpl1 34 %t43 = icmp sgt i64 0, %tmpl2 35 %t44 = icmp sgt i64 0, %tmpl3 36 %t45 = icmp sgt i64 0, %tmpl4 37 br label %block 38block: 39 %phi1 = phi i1 [ %t41, %entry] 40 %phi2 = phi i1 [ %t42, %entry] 41 %phi3 = phi i1 [ %t43, %entry] 42 %phi4 = phi i1 [ %t44, %entry] 43 %phi5 = phi i1 [ %t45, %entry] 44 ret void 45} 46