@@ -336,3 +336,31 @@ entry:
336
336
store <4 x i32 > %vmovl.i108 , ptr %add.ptr35 , align 4
337
337
ret void
338
338
}
339
+
340
+ define void @test11 (<2 x i64 > %0 , i64 %1 , <2 x i64 > %2 ) {
341
+ ; CHECK-LABEL: @test11(
342
+ ; CHECK-NEXT: entry:
343
+ ; CHECK-NEXT: [[TMP3:%.*]] = insertelement <2 x i64> [[TMP0:%.*]], i64 [[TMP1:%.*]], i32 1
344
+ ; CHECK-NEXT: [[TMP4:%.*]] = add <2 x i64> <i64 5, i64 0>, [[TMP2:%.*]]
345
+ ; CHECK-NEXT: [[TMP5:%.*]] = trunc <2 x i64> [[TMP4]] to <2 x i16>
346
+ ; CHECK-NEXT: [[TMP6:%.*]] = call <4 x i16> @llvm.vector.insert.v4i16.v2i16(<4 x i16> poison, <2 x i16> [[TMP5]], i64 0)
347
+ ; CHECK-NEXT: [[TMP7:%.*]] = trunc <2 x i64> [[TMP3]] to <2 x i16>
348
+ ; CHECK-NEXT: [[TMP8:%.*]] = call <4 x i16> @llvm.vector.insert.v4i16.v2i16(<4 x i16> [[TMP6]], <2 x i16> [[TMP7]], i64 2)
349
+ ; CHECK-NEXT: [[TMP9:%.*]] = trunc <4 x i16> [[TMP8]] to <4 x i8>
350
+ ; CHECK-NEXT: [[TMP10:%.*]] = call <4 x i8> @llvm.vector.insert.v4i8.v2i8(<4 x i8> poison, <2 x i8> zeroinitializer, i64 0)
351
+ ; CHECK-NEXT: [[TMP11:%.*]] = call <4 x i8> @llvm.vector.insert.v4i8.v2i8(<4 x i8> [[TMP10]], <2 x i8> zeroinitializer, i64 2)
352
+ ; CHECK-NEXT: [[TMP12:%.*]] = urem <4 x i8> [[TMP9]], [[TMP11]]
353
+ ; CHECK-NEXT: [[TMP13:%.*]] = icmp ne <4 x i8> [[TMP12]], [[TMP11]]
354
+ ; CHECK-NEXT: ret void
355
+ ;
356
+ entry:
357
+ %3 = insertelement <2 x i64 > %0 , i64 %1 , i32 1
358
+ %4 = add <2 x i64 > <i64 5 , i64 0 >, %2
359
+ %5 = trunc <2 x i64 > %3 to <2 x i8 >
360
+ %6 = trunc <2 x i64 > %4 to <2 x i8 >
361
+ %7 = urem <2 x i8 > %5 , zeroinitializer
362
+ %8 = urem <2 x i8 > %6 , zeroinitializer
363
+ %9 = icmp ne <2 x i8 > %7 , zeroinitializer
364
+ %10 = icmp ne <2 x i8 > %8 , zeroinitializer
365
+ ret void
366
+ }
0 commit comments