Differential D134377 Diff 462971 llvm/test/Transforms/SLPVectorizer/X86/insert-element-build-vector.ll
Changeset View
Changeset View
Standalone View
Standalone View
llvm/test/Transforms/SLPVectorizer/X86/insert-element-build-vector.ll
Show First 20 Lines • Show All 333 Lines • ▼ Show 20 Lines | |||||
; CHECK-NEXT: [[TMP11:%.*]] = icmp ne <2 x i32> [[TMP10]], zeroinitializer | ; CHECK-NEXT: [[TMP11:%.*]] = icmp ne <2 x i32> [[TMP10]], zeroinitializer | ||||
; CHECK-NEXT: [[TMP12:%.*]] = insertelement <2 x float> poison, float [[A2]], i32 0 | ; CHECK-NEXT: [[TMP12:%.*]] = insertelement <2 x float> poison, float [[A2]], i32 0 | ||||
; CHECK-NEXT: [[TMP13:%.*]] = insertelement <2 x float> [[TMP12]], float [[A3]], i32 1 | ; CHECK-NEXT: [[TMP13:%.*]] = insertelement <2 x float> [[TMP12]], float [[A3]], i32 1 | ||||
; CHECK-NEXT: [[TMP14:%.*]] = insertelement <2 x float> poison, float [[B2]], i32 0 | ; CHECK-NEXT: [[TMP14:%.*]] = insertelement <2 x float> poison, float [[B2]], i32 0 | ||||
; CHECK-NEXT: [[TMP15:%.*]] = insertelement <2 x float> [[TMP14]], float [[B3]], i32 1 | ; CHECK-NEXT: [[TMP15:%.*]] = insertelement <2 x float> [[TMP14]], float [[B3]], i32 1 | ||||
; CHECK-NEXT: [[TMP16:%.*]] = select <2 x i1> [[TMP11]], <2 x float> [[TMP13]], <2 x float> [[TMP15]] | ; CHECK-NEXT: [[TMP16:%.*]] = select <2 x i1> [[TMP11]], <2 x float> [[TMP13]], <2 x float> [[TMP15]] | ||||
; CHECK-NEXT: [[TMP17:%.*]] = shufflevector <2 x float> [[TMP8]], <2 x float> poison, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef> | ; CHECK-NEXT: [[TMP17:%.*]] = shufflevector <2 x float> [[TMP8]], <2 x float> poison, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef> | ||||
; CHECK-NEXT: [[TMP18:%.*]] = shufflevector <2 x float> [[TMP16]], <2 x float> poison, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef> | ; CHECK-NEXT: [[TMP18:%.*]] = shufflevector <2 x float> [[TMP16]], <2 x float> poison, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef> | ||||
; CHECK-NEXT: [[RD1:%.*]] = shufflevector <4 x float> undef, <4 x float> [[TMP18]], <4 x i32> <i32 0, i32 1, i32 4, i32 5> | ; CHECK-NEXT: [[RD1:%.*]] = shufflevector <4 x float> [[TMP18]], <4 x float> poison, <4 x i32> <i32 undef, i32 undef, i32 0, i32 1> | ||||
; CHECK-NEXT: ret <4 x float> [[RD1]] | ; CHECK-NEXT: [[TMP19:%.*]] = freeze <4 x float> [[RD1]] | ||||
; CHECK-NEXT: ret <4 x float> [[TMP19]] | |||||
; | ; | ||||
%c0 = extractelement <4 x i32> %c, i32 0 | %c0 = extractelement <4 x i32> %c, i32 0 | ||||
%c1 = extractelement <4 x i32> %c, i32 1 | %c1 = extractelement <4 x i32> %c, i32 1 | ||||
%c2 = extractelement <4 x i32> %c, i32 2 | %c2 = extractelement <4 x i32> %c, i32 2 | ||||
%c3 = extractelement <4 x i32> %c, i32 3 | %c3 = extractelement <4 x i32> %c, i32 3 | ||||
%a0 = extractelement <4 x float> %a, i32 0 | %a0 = extractelement <4 x float> %a, i32 0 | ||||
%a1 = extractelement <4 x float> %a, i32 1 | %a1 = extractelement <4 x float> %a, i32 1 | ||||
%a2 = extractelement <4 x float> %a, i32 2 | %a2 = extractelement <4 x float> %a, i32 2 | ||||
▲ Show 20 Lines • Show All 231 Lines • Show Last 20 Lines |