@@ -377,15 +377,24 @@ define i32 @negative_constant_multiplied_at_1(i32 %0) {
377377 ret i32 %4
378378}
379379
380- define i32 @negative_constant_multiplied_non_power_of_2 (i32 %0 ) {
381- ; CHECK-LABEL: @negative_constant_multiplied_non_power_of_2(
382- ; CHECK-NEXT: [[TMP2:%.*]] = insertelement <4 x i32> poison, i32 [[TMP0:%.*]], i64 0
383- ; CHECK-NEXT: [[TMP3:%.*]] = shufflevector <4 x i32> [[TMP2]], <4 x i32> poison, <6 x i32> zeroinitializer
384- ; CHECK-NEXT: [[TMP4:%.*]] = tail call i32 @llvm.vector.reduce.add.v6i32(<6 x i32> [[TMP3]])
385- ; CHECK-NEXT: ret i32 [[TMP4]]
380+ define i32 @constant_multiplied_non_power_of_2 (i32 %0 ) {
381+ ; CHECK-LABEL: @constant_multiplied_non_power_of_2(
382+ ; CHECK-NEXT: [[TMP2:%.*]] = mul i32 [[TMP0:%.*]], 6
383+ ; CHECK-NEXT: ret i32 [[TMP2]]
386384;
387385 %2 = insertelement <4 x i32 > poison, i32 %0 , i64 0
388386 %3 = shufflevector <4 x i32 > %2 , <4 x i32 > poison, <6 x i32 > zeroinitializer
389387 %4 = tail call i32 @llvm.vector.reduce.add.v6i32 (<6 x i32 > %3 )
390388 ret i32 %4
391389}
390+
391+ define i64 @constant_multiplied_non_power_of_2_i64 (i64 %0 ) {
392+ ; CHECK-LABEL: @constant_multiplied_non_power_of_2_i64(
393+ ; CHECK-NEXT: [[TMP2:%.*]] = mul i64 [[TMP0:%.*]], 6
394+ ; CHECK-NEXT: ret i64 [[TMP2]]
395+ ;
396+ %2 = insertelement <4 x i64 > poison, i64 %0 , i64 0
397+ %3 = shufflevector <4 x i64 > %2 , <4 x i64 > poison, <6 x i32 > zeroinitializer
398+ %4 = tail call i64 @llvm.vector.reduce.add.v6i64 (<6 x i64 > %3 )
399+ ret i64 %4
400+ }
0 commit comments