@@ -558,8 +558,8 @@ define <2 x i32> @vectorize_sdiv_v2i32(<2 x i32> %a, <2 x i32> %x, <2 x i32> %y,
558558; NO-SVE-SAME: <2 x i32> [[A:%.*]], <2 x i32> [[X:%.*]], <2 x i32> [[Y:%.*]], <2 x i32> [[Z:%.*]]) #[[ATTR0]] {
559559; NO-SVE-NEXT: [[A0:%.*]] = extractelement <2 x i32> [[A]], i64 0
560560; 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]]
563563; NO-SVE-NEXT: [[X0:%.*]] = extractelement <2 x i32> [[X]], i64 0
564564; NO-SVE-NEXT: [[X1:%.*]] = extractelement <2 x i32> [[X]], i64 1
565565; 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,
578578;
579579; SVE-LABEL: define <2 x i32> @vectorize_sdiv_v2i32(
580580; 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]]
582583; SVE-NEXT: [[TMP2:%.*]] = add <2 x i32> [[TMP1]], [[X]]
583584; SVE-NEXT: [[TMP3:%.*]] = sub <2 x i32> [[TMP2]], [[Y]]
584585; 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,
587588{
588589 %a0 = extractelement <2 x i32 > %a , i64 0
589590 %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
592593 %x0 = extractelement <2 x i32 > %x , i64 0
593594 %x1 = extractelement <2 x i32 > %x , i64 1
594595 %3 = add i32 %1 , %x0
0 commit comments