@@ -558,8 +558,8 @@ define <2 x i32> @vectorize_sdiv_v2i32(<2 x i32> %a, <2 x i32> %x, <2 x i32> %y,
558
558
; NO-SVE-SAME: <2 x i32> [[A:%.*]], <2 x i32> [[X:%.*]], <2 x i32> [[Y:%.*]], <2 x i32> [[Z:%.*]]) #[[ATTR0]] {
559
559
; NO-SVE-NEXT: [[A0:%.*]] = extractelement <2 x i32> [[A]], i64 0
560
560
; NO-SVE-NEXT: [[A1:%.*]] = extractelement <2 x i32> [[A]], i64 1
561
- ; NO-SVE-NEXT: [[TMP1:%.*]] = sdiv i32 [[A0]], 2
562
- ; NO-SVE-NEXT: [[TMP2:%.*]] = sdiv i32 [[A1]], 4
561
+ ; NO-SVE-NEXT: [[TMP1:%.*]] = sdiv i32 [[A0]], [[A1]]
562
+ ; NO-SVE-NEXT: [[TMP2:%.*]] = sdiv i32 [[A1]], [[A0]]
563
563
; NO-SVE-NEXT: [[X0:%.*]] = extractelement <2 x i32> [[X]], i64 0
564
564
; NO-SVE-NEXT: [[X1:%.*]] = extractelement <2 x i32> [[X]], i64 1
565
565
; NO-SVE-NEXT: [[TMP3:%.*]] = add i32 [[TMP1]], [[X0]]
@@ -578,7 +578,8 @@ define <2 x i32> @vectorize_sdiv_v2i32(<2 x i32> %a, <2 x i32> %x, <2 x i32> %y,
578
578
;
579
579
; SVE-LABEL: define <2 x i32> @vectorize_sdiv_v2i32(
580
580
; SVE-SAME: <2 x i32> [[A:%.*]], <2 x i32> [[X:%.*]], <2 x i32> [[Y:%.*]], <2 x i32> [[Z:%.*]]) #[[ATTR0]] {
581
- ; SVE-NEXT: [[TMP1:%.*]] = sdiv <2 x i32> [[A]], <i32 2, i32 4>
581
+ ; SVE-NEXT: [[TMP5:%.*]] = shufflevector <2 x i32> [[A]], <2 x i32> poison, <2 x i32> <i32 1, i32 0>
582
+ ; SVE-NEXT: [[TMP1:%.*]] = sdiv <2 x i32> [[A]], [[TMP5]]
582
583
; SVE-NEXT: [[TMP2:%.*]] = add <2 x i32> [[TMP1]], [[X]]
583
584
; SVE-NEXT: [[TMP3:%.*]] = sub <2 x i32> [[TMP2]], [[Y]]
584
585
; SVE-NEXT: [[TMP4:%.*]] = mul <2 x i32> [[TMP3]], [[Z]]
@@ -587,8 +588,8 @@ define <2 x i32> @vectorize_sdiv_v2i32(<2 x i32> %a, <2 x i32> %x, <2 x i32> %y,
587
588
{
588
589
%a0 = extractelement <2 x i32 > %a , i64 0
589
590
%a1 = extractelement <2 x i32 > %a , i64 1
590
- %1 = sdiv i32 %a0 , 2
591
- %2 = sdiv i32 %a1 , 4
591
+ %1 = sdiv i32 %a0 , %a1
592
+ %2 = sdiv i32 %a1 , %a0
592
593
%x0 = extractelement <2 x i32 > %x , i64 0
593
594
%x1 = extractelement <2 x i32 > %x , i64 1
594
595
%3 = add i32 %1 , %x0
0 commit comments