@@ -194,14 +194,11 @@ define void @vector_reverse_i64(ptr nocapture noundef writeonly %A, ptr nocaptur
194194; RV64-NEXT: [[TMP4:%.*]] = add i32 [[N]], -1
195195; RV64-NEXT: [[TMP5:%.*]] = trunc i64 [[TMP3]] to i32
196196; RV64-NEXT: [[MUL:%.*]] = call { i32, i1 } @llvm.umul.with.overflow.i32(i32 1, i32 [[TMP5]])
197- ; RV64-NEXT: [[MUL_RESULT:%.*]] = extractvalue { i32, i1 } [[MUL]], 0
198- ; RV64-NEXT: [[MUL_OVERFLOW:%.*]] = extractvalue { i32, i1 } [[MUL]], 1
199- ; RV64-NEXT: [[TMP6:%.*]] = sub i32 [[TMP4]], [[MUL_RESULT]]
197+ ; RV64-NEXT: [[TMP6:%.*]] = sub i32 [[TMP4]], [[TMP5]]
200198; RV64-NEXT: [[TMP7:%.*]] = icmp ugt i32 [[TMP6]], [[TMP4]]
201- ; RV64-NEXT: [[TMP8:%.*]] = or i1 [[TMP7]], [[MUL_OVERFLOW]]
202199; RV64-NEXT: [[TMP9:%.*]] = icmp ugt i64 [[TMP3]], 4294967295
203- ; RV64-NEXT: [[TMP10 :%.*]] = or i1 [[TMP8 ]], [[TMP9]]
204- ; RV64-NEXT: br i1 [[TMP10 ]], label %[[SCALAR_PH]], label %[[VECTOR_MEMCHECK:.*]]
200+ ; RV64-NEXT: [[TMP8 :%.*]] = or i1 [[TMP7 ]], [[TMP9]]
201+ ; RV64-NEXT: br i1 [[TMP8 ]], label %[[SCALAR_PH]], label %[[VECTOR_MEMCHECK:.*]]
205202; RV64: [[VECTOR_MEMCHECK]]:
206203; RV64-NEXT: [[TMP11:%.*]] = call i64 @llvm.vscale.i64()
207204; RV64-NEXT: [[TMP12:%.*]] = mul nuw i64 [[TMP11]], 4
@@ -334,13 +331,10 @@ define void @vector_reverse_i64(ptr nocapture noundef writeonly %A, ptr nocaptur
334331; RV64-UF2-NEXT: [[TMP4:%.*]] = add i32 [[N]], -1
335332; RV64-UF2-NEXT: [[TMP5:%.*]] = trunc i64 [[TMP3]] to i32
336333; RV64-UF2-NEXT: [[MUL:%.*]] = call { i32, i1 } @llvm.umul.with.overflow.i32(i32 1, i32 [[TMP5]])
337- ; RV64-UF2-NEXT: [[MUL_RESULT:%.*]] = extractvalue { i32, i1 } [[MUL]], 0
338- ; RV64-UF2-NEXT: [[MUL_OVERFLOW:%.*]] = extractvalue { i32, i1 } [[MUL]], 1
339- ; RV64-UF2-NEXT: [[TMP6:%.*]] = sub i32 [[TMP4]], [[MUL_RESULT]]
334+ ; RV64-UF2-NEXT: [[TMP6:%.*]] = sub i32 [[TMP4]], [[TMP5]]
340335; RV64-UF2-NEXT: [[TMP7:%.*]] = icmp ugt i32 [[TMP6]], [[TMP4]]
341- ; RV64-UF2-NEXT: [[TMP8:%.*]] = or i1 [[TMP7]], [[MUL_OVERFLOW]]
342336; RV64-UF2-NEXT: [[TMP9:%.*]] = icmp ugt i64 [[TMP3]], 4294967295
343- ; RV64-UF2-NEXT: [[TMP10:%.*]] = or i1 [[TMP8 ]], [[TMP9]]
337+ ; RV64-UF2-NEXT: [[TMP10:%.*]] = or i1 [[TMP7 ]], [[TMP9]]
344338; RV64-UF2-NEXT: br i1 [[TMP10]], label %[[SCALAR_PH]], label %[[VECTOR_MEMCHECK:.*]]
345339; RV64-UF2: [[VECTOR_MEMCHECK]]:
346340; RV64-UF2-NEXT: [[TMP11:%.*]] = call i64 @llvm.vscale.i64()
@@ -455,14 +449,11 @@ define void @vector_reverse_f32(ptr nocapture noundef writeonly %A, ptr nocaptur
455449; RV64-NEXT: [[TMP4:%.*]] = add i32 [[N]], -1
456450; RV64-NEXT: [[TMP5:%.*]] = trunc i64 [[TMP3]] to i32
457451; RV64-NEXT: [[MUL:%.*]] = call { i32, i1 } @llvm.umul.with.overflow.i32(i32 1, i32 [[TMP5]])
458- ; RV64-NEXT: [[MUL_RESULT:%.*]] = extractvalue { i32, i1 } [[MUL]], 0
459- ; RV64-NEXT: [[MUL_OVERFLOW:%.*]] = extractvalue { i32, i1 } [[MUL]], 1
460- ; RV64-NEXT: [[TMP6:%.*]] = sub i32 [[TMP4]], [[MUL_RESULT]]
452+ ; RV64-NEXT: [[TMP6:%.*]] = sub i32 [[TMP4]], [[TMP5]]
461453; RV64-NEXT: [[TMP7:%.*]] = icmp ugt i32 [[TMP6]], [[TMP4]]
462- ; RV64-NEXT: [[TMP8:%.*]] = or i1 [[TMP7]], [[MUL_OVERFLOW]]
463454; RV64-NEXT: [[TMP9:%.*]] = icmp ugt i64 [[TMP3]], 4294967295
464- ; RV64-NEXT: [[TMP10 :%.*]] = or i1 [[TMP8 ]], [[TMP9]]
465- ; RV64-NEXT: br i1 [[TMP10 ]], label %[[SCALAR_PH]], label %[[VECTOR_MEMCHECK:.*]]
455+ ; RV64-NEXT: [[TMP8 :%.*]] = or i1 [[TMP7 ]], [[TMP9]]
456+ ; RV64-NEXT: br i1 [[TMP8 ]], label %[[SCALAR_PH]], label %[[VECTOR_MEMCHECK:.*]]
466457; RV64: [[VECTOR_MEMCHECK]]:
467458; RV64-NEXT: [[TMP11:%.*]] = call i64 @llvm.vscale.i64()
468459; RV64-NEXT: [[TMP12:%.*]] = mul nuw i64 [[TMP11]], 4
@@ -595,13 +586,10 @@ define void @vector_reverse_f32(ptr nocapture noundef writeonly %A, ptr nocaptur
595586; RV64-UF2-NEXT: [[TMP4:%.*]] = add i32 [[N]], -1
596587; RV64-UF2-NEXT: [[TMP5:%.*]] = trunc i64 [[TMP3]] to i32
597588; RV64-UF2-NEXT: [[MUL:%.*]] = call { i32, i1 } @llvm.umul.with.overflow.i32(i32 1, i32 [[TMP5]])
598- ; RV64-UF2-NEXT: [[MUL_RESULT:%.*]] = extractvalue { i32, i1 } [[MUL]], 0
599- ; RV64-UF2-NEXT: [[MUL_OVERFLOW:%.*]] = extractvalue { i32, i1 } [[MUL]], 1
600- ; RV64-UF2-NEXT: [[TMP6:%.*]] = sub i32 [[TMP4]], [[MUL_RESULT]]
589+ ; RV64-UF2-NEXT: [[TMP6:%.*]] = sub i32 [[TMP4]], [[TMP5]]
601590; RV64-UF2-NEXT: [[TMP7:%.*]] = icmp ugt i32 [[TMP6]], [[TMP4]]
602- ; RV64-UF2-NEXT: [[TMP8:%.*]] = or i1 [[TMP7]], [[MUL_OVERFLOW]]
603591; RV64-UF2-NEXT: [[TMP9:%.*]] = icmp ugt i64 [[TMP3]], 4294967295
604- ; RV64-UF2-NEXT: [[TMP10:%.*]] = or i1 [[TMP8 ]], [[TMP9]]
592+ ; RV64-UF2-NEXT: [[TMP10:%.*]] = or i1 [[TMP7 ]], [[TMP9]]
605593; RV64-UF2-NEXT: br i1 [[TMP10]], label %[[SCALAR_PH]], label %[[VECTOR_MEMCHECK:.*]]
606594; RV64-UF2: [[VECTOR_MEMCHECK]]:
607595; RV64-UF2-NEXT: [[TMP11:%.*]] = call i64 @llvm.vscale.i64()
0 commit comments