3
3
; RUN: llc -mtriple=x86_64 -mattr=+avx512f < %s | FileCheck %s --check-prefixes=CHECK,AVX512F
4
4
; RUN: llc -mtriple=x86_64 -mattr=+avx512f,+avx512vl,+avx512vbmi2 < %s | FileCheck %s --check-prefixes=CHECK,AVX512VL
5
5
6
- define <4 x i32 > @test_compress_v4i32 (<4 x i32 > %vec , <4 x i1 > %mask , <4 x i32 > %passthru ) {
6
+ define <4 x i32 > @test_compress_v4i32 (<4 x i32 > %vec , <4 x i1 > %mask , <4 x i32 > %passthru ) nounwind {
7
7
; AVX2-LABEL: test_compress_v4i32:
8
8
; AVX2: # %bb.0:
9
9
; AVX2-NEXT: vpslld $31, %xmm1, %xmm1
@@ -64,7 +64,7 @@ define <4 x i32> @test_compress_v4i32(<4 x i32> %vec, <4 x i1> %mask, <4 x i32>
64
64
ret <4 x i32 > %out
65
65
}
66
66
67
- define <4 x float > @test_compress_v4f32 (<4 x float > %vec , <4 x i1 > %mask , <4 x float > %passthru ) {
67
+ define <4 x float > @test_compress_v4f32 (<4 x float > %vec , <4 x i1 > %mask , <4 x float > %passthru ) nounwind {
68
68
; AVX2-LABEL: test_compress_v4f32:
69
69
; AVX2: # %bb.0:
70
70
; AVX2-NEXT: vpslld $31, %xmm1, %xmm1
@@ -129,7 +129,7 @@ define <4 x float> @test_compress_v4f32(<4 x float> %vec, <4 x i1> %mask, <4 x f
129
129
ret <4 x float > %out
130
130
}
131
131
132
- define <2 x i64 > @test_compress_v2i64 (<2 x i64 > %vec , <2 x i1 > %mask , <2 x i64 > %passthru ) {
132
+ define <2 x i64 > @test_compress_v2i64 (<2 x i64 > %vec , <2 x i1 > %mask , <2 x i64 > %passthru ) nounwind {
133
133
; AVX2-LABEL: test_compress_v2i64:
134
134
; AVX2: # %bb.0:
135
135
; AVX2-NEXT: vpsllq $63, %xmm1, %xmm1
@@ -181,7 +181,7 @@ define <2 x i64> @test_compress_v2i64(<2 x i64> %vec, <2 x i1> %mask, <2 x i64>
181
181
ret <2 x i64 > %out
182
182
}
183
183
184
- define <2 x double > @test_compress_v2f64 (<2 x double > %vec , <2 x i1 > %mask , <2 x double > %passthru ) {
184
+ define <2 x double > @test_compress_v2f64 (<2 x double > %vec , <2 x i1 > %mask , <2 x double > %passthru ) nounwind {
185
185
; AVX2-LABEL: test_compress_v2f64:
186
186
; AVX2: # %bb.0:
187
187
; AVX2-NEXT: vpsllq $63, %xmm1, %xmm1
@@ -236,18 +236,14 @@ define <2 x double> @test_compress_v2f64(<2 x double> %vec, <2 x i1> %mask, <2 x
236
236
ret <2 x double > %out
237
237
}
238
238
239
- define <8 x i32 > @test_compress_v8i32 (<8 x i32 > %vec , <8 x i1 > %mask , <8 x i32 > %passthru ) {
239
+ define <8 x i32 > @test_compress_v8i32 (<8 x i32 > %vec , <8 x i1 > %mask , <8 x i32 > %passthru ) nounwind {
240
240
; AVX2-LABEL: test_compress_v8i32:
241
241
; AVX2: # %bb.0:
242
242
; AVX2-NEXT: pushq %rbp
243
- ; AVX2-NEXT: .cfi_def_cfa_offset 16
244
- ; AVX2-NEXT: .cfi_offset %rbp, -16
245
243
; AVX2-NEXT: movq %rsp, %rbp
246
- ; AVX2-NEXT: .cfi_def_cfa_register %rbp
247
244
; AVX2-NEXT: pushq %rbx
248
245
; AVX2-NEXT: andq $-32, %rsp
249
246
; AVX2-NEXT: subq $64, %rsp
250
- ; AVX2-NEXT: .cfi_offset %rbx, -24
251
247
; AVX2-NEXT: vpmovzxwd {{.*#+}} ymm1 = xmm1[0],zero,xmm1[1],zero,xmm1[2],zero,xmm1[3],zero,xmm1[4],zero,xmm1[5],zero,xmm1[6],zero,xmm1[7],zero
252
248
; AVX2-NEXT: vpslld $31, %ymm1, %ymm1
253
249
; AVX2-NEXT: vpsrad $31, %ymm1, %ymm3
@@ -315,7 +311,6 @@ define <8 x i32> @test_compress_v8i32(<8 x i32> %vec, <8 x i1> %mask, <8 x i32>
315
311
; AVX2-NEXT: leaq -8(%rbp), %rsp
316
312
; AVX2-NEXT: popq %rbx
317
313
; AVX2-NEXT: popq %rbp
318
- ; AVX2-NEXT: .cfi_def_cfa %rsp, 8
319
314
; AVX2-NEXT: retq
320
315
;
321
316
; AVX512F-LABEL: test_compress_v8i32:
@@ -340,14 +335,11 @@ define <8 x i32> @test_compress_v8i32(<8 x i32> %vec, <8 x i1> %mask, <8 x i32>
340
335
ret <8 x i32 > %out
341
336
}
342
337
343
- define <8 x float > @test_compress_v8f32 (<8 x float > %vec , <8 x i1 > %mask , <8 x float > %passthru ) {
338
+ define <8 x float > @test_compress_v8f32 (<8 x float > %vec , <8 x i1 > %mask , <8 x float > %passthru ) nounwind {
344
339
; AVX2-LABEL: test_compress_v8f32:
345
340
; AVX2: # %bb.0:
346
341
; AVX2-NEXT: pushq %rbp
347
- ; AVX2-NEXT: .cfi_def_cfa_offset 16
348
- ; AVX2-NEXT: .cfi_offset %rbp, -16
349
342
; AVX2-NEXT: movq %rsp, %rbp
350
- ; AVX2-NEXT: .cfi_def_cfa_register %rbp
351
343
; AVX2-NEXT: andq $-32, %rsp
352
344
; AVX2-NEXT: subq $64, %rsp
353
345
; AVX2-NEXT: vpmovzxwd {{.*#+}} ymm1 = xmm1[0],zero,xmm1[1],zero,xmm1[2],zero,xmm1[3],zero,xmm1[4],zero,xmm1[5],zero,xmm1[6],zero,xmm1[7],zero
@@ -424,7 +416,6 @@ define <8 x float> @test_compress_v8f32(<8 x float> %vec, <8 x i1> %mask, <8 x f
424
416
; AVX2-NEXT: vmovaps (%rsp), %ymm0
425
417
; AVX2-NEXT: movq %rbp, %rsp
426
418
; AVX2-NEXT: popq %rbp
427
- ; AVX2-NEXT: .cfi_def_cfa %rsp, 8
428
419
; AVX2-NEXT: retq
429
420
;
430
421
; AVX512F-LABEL: test_compress_v8f32:
@@ -449,14 +440,11 @@ define <8 x float> @test_compress_v8f32(<8 x float> %vec, <8 x i1> %mask, <8 x f
449
440
ret <8 x float > %out
450
441
}
451
442
452
- define <4 x i64 > @test_compress_v4i64 (<4 x i64 > %vec , <4 x i1 > %mask , <4 x i64 > %passthru ) {
443
+ define <4 x i64 > @test_compress_v4i64 (<4 x i64 > %vec , <4 x i1 > %mask , <4 x i64 > %passthru ) nounwind {
453
444
; AVX2-LABEL: test_compress_v4i64:
454
445
; AVX2: # %bb.0:
455
446
; AVX2-NEXT: pushq %rbp
456
- ; AVX2-NEXT: .cfi_def_cfa_offset 16
457
- ; AVX2-NEXT: .cfi_offset %rbp, -16
458
447
; AVX2-NEXT: movq %rsp, %rbp
459
- ; AVX2-NEXT: .cfi_def_cfa_register %rbp
460
448
; AVX2-NEXT: andq $-32, %rsp
461
449
; AVX2-NEXT: subq $64, %rsp
462
450
; AVX2-NEXT: vpslld $31, %xmm1, %xmm1
@@ -499,7 +487,6 @@ define <4 x i64> @test_compress_v4i64(<4 x i64> %vec, <4 x i1> %mask, <4 x i64>
499
487
; AVX2-NEXT: vmovaps (%rsp), %ymm0
500
488
; AVX2-NEXT: movq %rbp, %rsp
501
489
; AVX2-NEXT: popq %rbp
502
- ; AVX2-NEXT: .cfi_def_cfa %rsp, 8
503
490
; AVX2-NEXT: retq
504
491
;
505
492
; AVX512F-LABEL: test_compress_v4i64:
@@ -525,7 +512,7 @@ define <4 x i64> @test_compress_v4i64(<4 x i64> %vec, <4 x i1> %mask, <4 x i64>
525
512
ret <4 x i64 > %out
526
513
}
527
514
528
- define <4 x double > @test_compress_v4f64 (<4 x double > %vec , <4 x i1 > %mask , <4 x double > %passthru ) {
515
+ define <4 x double > @test_compress_v4f64 (<4 x double > %vec , <4 x i1 > %mask , <4 x double > %passthru ) nounwind {
529
516
; AVX512F-LABEL: test_compress_v4f64:
530
517
; AVX512F: # %bb.0:
531
518
; AVX512F-NEXT: # kill: def $ymm2 killed $ymm2 def $zmm2
@@ -549,7 +536,7 @@ define <4 x double> @test_compress_v4f64(<4 x double> %vec, <4 x i1> %mask, <4 x
549
536
ret <4 x double > %out
550
537
}
551
538
552
- define <16 x i32 > @test_compress_v16i32 (<16 x i32 > %vec , <16 x i1 > %mask , <16 x i32 > %passthru ) {
539
+ define <16 x i32 > @test_compress_v16i32 (<16 x i32 > %vec , <16 x i1 > %mask , <16 x i32 > %passthru ) nounwind {
553
540
; AVX512F-LABEL: test_compress_v16i32:
554
541
; AVX512F: # %bb.0:
555
542
; AVX512F-NEXT: vpmovsxbd %xmm1, %zmm1
@@ -570,7 +557,7 @@ define <16 x i32> @test_compress_v16i32(<16 x i32> %vec, <16 x i1> %mask, <16 x
570
557
ret <16 x i32 > %out
571
558
}
572
559
573
- define <16 x float > @test_compress_v16f32 (<16 x float > %vec , <16 x i1 > %mask , <16 x float > %passthru ) {
560
+ define <16 x float > @test_compress_v16f32 (<16 x float > %vec , <16 x i1 > %mask , <16 x float > %passthru ) nounwind {
574
561
; AVX512F-LABEL: test_compress_v16f32:
575
562
; AVX512F: # %bb.0:
576
563
; AVX512F-NEXT: vpmovsxbd %xmm1, %zmm1
@@ -591,7 +578,7 @@ define <16 x float> @test_compress_v16f32(<16 x float> %vec, <16 x i1> %mask, <1
591
578
ret <16 x float > %out
592
579
}
593
580
594
- define <8 x i64 > @test_compress_v8i64 (<8 x i64 > %vec , <8 x i1 > %mask , <8 x i64 > %passthru ) {
581
+ define <8 x i64 > @test_compress_v8i64 (<8 x i64 > %vec , <8 x i1 > %mask , <8 x i64 > %passthru ) nounwind {
595
582
; AVX512F-LABEL: test_compress_v8i64:
596
583
; AVX512F: # %bb.0:
597
584
; AVX512F-NEXT: vpmovsxwq %xmm1, %zmm1
@@ -612,7 +599,7 @@ define <8 x i64> @test_compress_v8i64(<8 x i64> %vec, <8 x i1> %mask, <8 x i64>
612
599
ret <8 x i64 > %out
613
600
}
614
601
615
- define <8 x double > @test_compress_v8f64 (<8 x double > %vec , <8 x i1 > %mask , <8 x double > %passthru ) {
602
+ define <8 x double > @test_compress_v8f64 (<8 x double > %vec , <8 x i1 > %mask , <8 x double > %passthru ) nounwind {
616
603
; AVX512F-LABEL: test_compress_v8f64:
617
604
; AVX512F: # %bb.0:
618
605
; AVX512F-NEXT: vpmovsxwq %xmm1, %zmm1
@@ -633,7 +620,7 @@ define <8 x double> @test_compress_v8f64(<8 x double> %vec, <8 x i1> %mask, <8 x
633
620
ret <8 x double > %out
634
621
}
635
622
636
- define <16 x i8 > @test_compress_v16i8 (<16 x i8 > %vec , <16 x i1 > %mask , <16 x i8 > %passthru ) {
623
+ define <16 x i8 > @test_compress_v16i8 (<16 x i8 > %vec , <16 x i1 > %mask , <16 x i8 > %passthru ) nounwind {
637
624
; AVX512F-LABEL: test_compress_v16i8:
638
625
; AVX512F: # %bb.0:
639
626
; AVX512F-NEXT: vpmovsxbd %xmm1, %zmm1
@@ -657,7 +644,7 @@ define <16 x i8> @test_compress_v16i8(<16 x i8> %vec, <16 x i1> %mask, <16 x i8>
657
644
ret <16 x i8 > %out
658
645
}
659
646
660
- define <8 x i16 > @test_compress_v8i16 (<8 x i16 > %vec , <8 x i1 > %mask , <8 x i16 > %passthru ) {
647
+ define <8 x i16 > @test_compress_v8i16 (<8 x i16 > %vec , <8 x i1 > %mask , <8 x i16 > %passthru ) nounwind {
661
648
; AVX512F-LABEL: test_compress_v8i16:
662
649
; AVX512F: # %bb.0:
663
650
; AVX512F-NEXT: vpmovsxwq %xmm1, %zmm1
@@ -681,14 +668,11 @@ define <8 x i16> @test_compress_v8i16(<8 x i16> %vec, <8 x i1> %mask, <8 x i16>
681
668
ret <8 x i16 > %out
682
669
}
683
670
684
- define <32 x i8 > @test_compress_v32i8 (<32 x i8 > %vec , <32 x i1 > %mask , <32 x i8 > %passthru ) {
671
+ define <32 x i8 > @test_compress_v32i8 (<32 x i8 > %vec , <32 x i1 > %mask , <32 x i8 > %passthru ) nounwind {
685
672
; AVX512F-LABEL: test_compress_v32i8:
686
673
; AVX512F: # %bb.0:
687
674
; AVX512F-NEXT: pushq %rbp
688
- ; AVX512F-NEXT: .cfi_def_cfa_offset 16
689
- ; AVX512F-NEXT: .cfi_offset %rbp, -16
690
675
; AVX512F-NEXT: movq %rsp, %rbp
691
- ; AVX512F-NEXT: .cfi_def_cfa_register %rbp
692
676
; AVX512F-NEXT: andq $-32, %rsp
693
677
; AVX512F-NEXT: subq $64, %rsp
694
678
; AVX512F-NEXT: vextracti128 $1, %ymm1, %xmm3
@@ -719,7 +703,6 @@ define <32 x i8> @test_compress_v32i8(<32 x i8> %vec, <32 x i1> %mask, <32 x i8>
719
703
; AVX512F-NEXT: vpblendvb %ymm0, (%rsp), %ymm2, %ymm0
720
704
; AVX512F-NEXT: movq %rbp, %rsp
721
705
; AVX512F-NEXT: popq %rbp
722
- ; AVX512F-NEXT: .cfi_def_cfa %rsp, 8
723
706
; AVX512F-NEXT: retq
724
707
;
725
708
; AVX512VL-LABEL: test_compress_v32i8:
@@ -733,7 +716,7 @@ define <32 x i8> @test_compress_v32i8(<32 x i8> %vec, <32 x i1> %mask, <32 x i8>
733
716
ret <32 x i8 > %out
734
717
}
735
718
736
- define <16 x i16 > @test_compress_v16i16 (<16 x i16 > %vec , <16 x i1 > %mask , <16 x i16 > %passthru ) {
719
+ define <16 x i16 > @test_compress_v16i16 (<16 x i16 > %vec , <16 x i1 > %mask , <16 x i16 > %passthru ) nounwind {
737
720
; AVX512F-LABEL: test_compress_v16i16:
738
721
; AVX512F: # %bb.0:
739
722
; AVX512F-NEXT: vpmovsxbd %xmm1, %zmm1
@@ -756,7 +739,7 @@ define <16 x i16> @test_compress_v16i16(<16 x i16> %vec, <16 x i1> %mask, <16 x
756
739
ret <16 x i16 > %out
757
740
}
758
741
759
- define <64 x i8 > @test_compress_v64i8 (<64 x i8 > %vec , <64 x i1 > %mask , <64 x i8 > %passthru ) {
742
+ define <64 x i8 > @test_compress_v64i8 (<64 x i8 > %vec , <64 x i1 > %mask , <64 x i8 > %passthru ) nounwind {
760
743
; AVX512VL-LABEL: test_compress_v64i8:
761
744
; AVX512VL: # %bb.0:
762
745
; AVX512VL-NEXT: vpsllw $7, %zmm1, %zmm1
@@ -768,14 +751,11 @@ define <64 x i8> @test_compress_v64i8(<64 x i8> %vec, <64 x i1> %mask, <64 x i8>
768
751
ret <64 x i8 > %out
769
752
}
770
753
771
- define <32 x i16 > @test_compress_v32i16 (<32 x i16 > %vec , <32 x i1 > %mask , <32 x i16 > %passthru ) {
754
+ define <32 x i16 > @test_compress_v32i16 (<32 x i16 > %vec , <32 x i1 > %mask , <32 x i16 > %passthru ) nounwind {
772
755
; AVX512F-LABEL: test_compress_v32i16:
773
756
; AVX512F: # %bb.0:
774
757
; AVX512F-NEXT: pushq %rbp
775
- ; AVX512F-NEXT: .cfi_def_cfa_offset 16
776
- ; AVX512F-NEXT: .cfi_offset %rbp, -16
777
758
; AVX512F-NEXT: movq %rsp, %rbp
778
- ; AVX512F-NEXT: .cfi_def_cfa_register %rbp
779
759
; AVX512F-NEXT: andq $-64, %rsp
780
760
; AVX512F-NEXT: subq $128, %rsp
781
761
; AVX512F-NEXT: vpmovzxbw {{.*#+}} ymm3 = xmm1[0],zero,xmm1[1],zero,xmm1[2],zero,xmm1[3],zero,xmm1[4],zero,xmm1[5],zero,xmm1[6],zero,xmm1[7],zero,xmm1[8],zero,xmm1[9],zero,xmm1[10],zero,xmm1[11],zero,xmm1[12],zero,xmm1[13],zero,xmm1[14],zero,xmm1[15],zero
@@ -814,7 +794,6 @@ define <32 x i16> @test_compress_v32i16(<32 x i16> %vec, <32 x i1> %mask, <32 x
814
794
; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm1, %zmm0
815
795
; AVX512F-NEXT: movq %rbp, %rsp
816
796
; AVX512F-NEXT: popq %rbp
817
- ; AVX512F-NEXT: .cfi_def_cfa %rsp, 8
818
797
; AVX512F-NEXT: retq
819
798
;
820
799
; AVX512VL-LABEL: test_compress_v32i16:
@@ -828,14 +807,11 @@ define <32 x i16> @test_compress_v32i16(<32 x i16> %vec, <32 x i1> %mask, <32 x
828
807
ret <32 x i16 > %out
829
808
}
830
809
831
- define <64 x i32 > @test_compress_large (<64 x i1 > %mask , <64 x i32 > %vec , <64 x i32 > %passthru ) {
810
+ define <64 x i32 > @test_compress_large (<64 x i1 > %mask , <64 x i32 > %vec , <64 x i32 > %passthru ) nounwind {
832
811
; AVX512VL-LABEL: test_compress_large:
833
812
; AVX512VL: # %bb.0:
834
813
; AVX512VL-NEXT: pushq %rbp
835
- ; AVX512VL-NEXT: .cfi_def_cfa_offset 16
836
- ; AVX512VL-NEXT: .cfi_offset %rbp, -16
837
814
; AVX512VL-NEXT: movq %rsp, %rbp
838
- ; AVX512VL-NEXT: .cfi_def_cfa_register %rbp
839
815
; AVX512VL-NEXT: andq $-64, %rsp
840
816
; AVX512VL-NEXT: subq $576, %rsp # imm = 0x240
841
817
; AVX512VL-NEXT: vpsllw $7, %zmm0, %zmm0
@@ -896,13 +872,12 @@ define <64 x i32> @test_compress_large(<64 x i1> %mask, <64 x i32> %vec, <64 x i
896
872
; AVX512VL-NEXT: vmovaps {{[0-9]+}}(%rsp), %zmm3
897
873
; AVX512VL-NEXT: movq %rbp, %rsp
898
874
; AVX512VL-NEXT: popq %rbp
899
- ; AVX512VL-NEXT: .cfi_def_cfa %rsp, 8
900
875
; AVX512VL-NEXT: retq
901
876
%out = call <64 x i32 > @llvm.experimental.vector.compress (<64 x i32 > %vec , <64 x i1 > %mask , <64 x i32 > undef )
902
877
ret <64 x i32 > %out
903
878
}
904
879
905
- define <4 x i32 > @test_compress_all_const () {
880
+ define <4 x i32 > @test_compress_all_const () nounwind {
906
881
; AVX2-LABEL: test_compress_all_const:
907
882
; AVX2: # %bb.0:
908
883
; AVX2-NEXT: vmovsd {{.*#+}} xmm0 = [5,9,0,0]
@@ -923,7 +898,7 @@ define <4 x i32> @test_compress_all_const() {
923
898
ret <4 x i32 > %out
924
899
}
925
900
926
- define <4 x i32 > @test_compress_const_mask (<4 x i32 > %vec ) {
901
+ define <4 x i32 > @test_compress_const_mask (<4 x i32 > %vec ) nounwind {
927
902
; CHECK-LABEL: test_compress_const_mask:
928
903
; CHECK: # %bb.0:
929
904
; CHECK-NEXT: vshufps {{.*#+}} xmm0 = xmm0[0,3,2,3]
@@ -932,7 +907,7 @@ define <4 x i32> @test_compress_const_mask(<4 x i32> %vec) {
932
907
ret <4 x i32 > %out
933
908
}
934
909
935
- define <4 x i32 > @test_compress_const_mask_passthrough (<4 x i32 > %vec , <4 x i32 > %passthru ) {
910
+ define <4 x i32 > @test_compress_const_mask_passthrough (<4 x i32 > %vec , <4 x i32 > %passthru ) nounwind {
936
911
; CHECK-LABEL: test_compress_const_mask_passthrough:
937
912
; CHECK: # %bb.0:
938
913
; CHECK-NEXT: vshufps {{.*#+}} xmm0 = xmm0[0,3],xmm1[2,3]
@@ -941,7 +916,7 @@ define <4 x i32> @test_compress_const_mask_passthrough(<4 x i32> %vec, <4 x i32>
941
916
ret <4 x i32 > %out
942
917
}
943
918
944
- define <4 x i32 > @test_compress_const_mask_const_passthrough (<4 x i32 > %vec ) {
919
+ define <4 x i32 > @test_compress_const_mask_const_passthrough (<4 x i32 > %vec ) nounwind {
945
920
; CHECK-LABEL: test_compress_const_mask_const_passthrough:
946
921
; CHECK: # %bb.0:
947
922
; CHECK-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,3,2,3]
@@ -956,45 +931,45 @@ define <4 x i32> @test_compress_const_mask_const_passthrough(<4 x i32> %vec) {
956
931
957
932
; We pass a placeholder value for the const_mask* tests to check that they are converted to a no-op by simply copying
958
933
; the second vector input register to the return register or doing nothing.
959
- define <4 x i32 > @test_compress_const_splat1_mask (<4 x i32 > %ignore , <4 x i32 > %vec ) {
934
+ define <4 x i32 > @test_compress_const_splat1_mask (<4 x i32 > %ignore , <4 x i32 > %vec ) nounwind {
960
935
; CHECK-LABEL: test_compress_const_splat1_mask:
961
936
; CHECK: # %bb.0:
962
937
; CHECK-NEXT: vmovaps %xmm1, %xmm0
963
938
; CHECK-NEXT: retq
964
939
%out = call <4 x i32 > @llvm.experimental.vector.compress (<4 x i32 > %vec , <4 x i1 > splat (i1 -1 ), <4 x i32 > undef )
965
940
ret <4 x i32 > %out
966
941
}
967
- define <4 x i32 > @test_compress_const_splat0_mask (<4 x i32 > %ignore , <4 x i32 > %vec ) {
942
+ define <4 x i32 > @test_compress_const_splat0_mask (<4 x i32 > %ignore , <4 x i32 > %vec ) nounwind {
968
943
; CHECK-LABEL: test_compress_const_splat0_mask:
969
944
; CHECK: # %bb.0:
970
945
; CHECK-NEXT: retq
971
946
%out = call <4 x i32 > @llvm.experimental.vector.compress (<4 x i32 > %vec , <4 x i1 > splat (i1 0 ), <4 x i32 > undef )
972
947
ret <4 x i32 > %out
973
948
}
974
- define <4 x i32 > @test_compress_undef_mask (<4 x i32 > %ignore , <4 x i32 > %vec ) {
949
+ define <4 x i32 > @test_compress_undef_mask (<4 x i32 > %ignore , <4 x i32 > %vec ) nounwind {
975
950
; CHECK-LABEL: test_compress_undef_mask:
976
951
; CHECK: # %bb.0:
977
952
; CHECK-NEXT: retq
978
953
%out = call <4 x i32 > @llvm.experimental.vector.compress (<4 x i32 > %vec , <4 x i1 > undef , <4 x i32 > undef )
979
954
ret <4 x i32 > %out
980
955
}
981
- define <4 x i32 > @test_compress_const_splat0_mask_with_passthru (<4 x i32 > %ignore , <4 x i32 > %vec , <4 x i32 > %passthru ) {
956
+ define <4 x i32 > @test_compress_const_splat0_mask_with_passthru (<4 x i32 > %ignore , <4 x i32 > %vec , <4 x i32 > %passthru ) nounwind {
982
957
; CHECK-LABEL: test_compress_const_splat0_mask_with_passthru:
983
958
; CHECK: # %bb.0:
984
959
; CHECK-NEXT: vmovaps %xmm2, %xmm0
985
960
; CHECK-NEXT: retq
986
961
%out = call <4 x i32 > @llvm.experimental.vector.compress (<4 x i32 > %vec , <4 x i1 > splat (i1 0 ), <4 x i32 > %passthru )
987
962
ret <4 x i32 > %out
988
963
}
989
- define <4 x i32 > @test_compress_const_splat0_mask_without_passthru (<4 x i32 > %ignore , <4 x i32 > %vec ) {
964
+ define <4 x i32 > @test_compress_const_splat0_mask_without_passthru (<4 x i32 > %ignore , <4 x i32 > %vec ) nounwind {
990
965
; CHECK-LABEL: test_compress_const_splat0_mask_without_passthru:
991
966
; CHECK: # %bb.0:
992
967
; CHECK-NEXT: retq
993
968
%out = call <4 x i32 > @llvm.experimental.vector.compress (<4 x i32 > %vec , <4 x i1 > splat (i1 0 ), <4 x i32 > undef )
994
969
ret <4 x i32 > %out
995
970
}
996
971
997
- define <4 x i8 > @test_compress_small (<4 x i8 > %vec , <4 x i1 > %mask ) {
972
+ define <4 x i8 > @test_compress_small (<4 x i8 > %vec , <4 x i1 > %mask ) nounwind {
998
973
; AVX512F-LABEL: test_compress_small:
999
974
; AVX512F: # %bb.0:
1000
975
; AVX512F-NEXT: vpslld $31, %xmm1, %xmm1
@@ -1017,7 +992,7 @@ define <4 x i8> @test_compress_small(<4 x i8> %vec, <4 x i1> %mask) {
1017
992
ret <4 x i8 > %out
1018
993
}
1019
994
1020
- define <4 x i4 > @test_compress_illegal_element_type (<4 x i4 > %vec , <4 x i1 > %mask ) {
995
+ define <4 x i4 > @test_compress_illegal_element_type (<4 x i4 > %vec , <4 x i1 > %mask ) nounwind {
1021
996
; AVX2-LABEL: test_compress_illegal_element_type:
1022
997
; AVX2: # %bb.0:
1023
998
; AVX2-NEXT: vpslld $31, %xmm1, %xmm1
@@ -1059,7 +1034,7 @@ define <4 x i4> @test_compress_illegal_element_type(<4 x i4> %vec, <4 x i1> %mas
1059
1034
ret <4 x i4 > %out
1060
1035
}
1061
1036
1062
- define <3 x i32 > @test_compress_narrow (<3 x i32 > %vec , <3 x i1 > %mask ) {
1037
+ define <3 x i32 > @test_compress_narrow (<3 x i32 > %vec , <3 x i1 > %mask ) nounwind {
1063
1038
; AVX2-LABEL: test_compress_narrow:
1064
1039
; AVX2: # %bb.0:
1065
1040
; AVX2-NEXT: vmovd %edi, %xmm1
@@ -1132,7 +1107,7 @@ define <3 x i32> @test_compress_narrow(<3 x i32> %vec, <3 x i1> %mask) {
1132
1107
ret <3 x i32 > %out
1133
1108
}
1134
1109
1135
- define <3 x i3 > @test_compress_narrow_illegal_element_type (<3 x i3 > %vec , <3 x i1 > %mask ) {
1110
+ define <3 x i3 > @test_compress_narrow_illegal_element_type (<3 x i3 > %vec , <3 x i1 > %mask ) nounwind {
1136
1111
; AVX2-LABEL: test_compress_narrow_illegal_element_type:
1137
1112
; AVX2: # %bb.0:
1138
1113
; AVX2-NEXT: vmovd %ecx, %xmm0
@@ -1222,7 +1197,7 @@ define <3 x i3> @test_compress_narrow_illegal_element_type(<3 x i3> %vec, <3 x i
1222
1197
ret <3 x i3 > %out
1223
1198
}
1224
1199
1225
- define <4 x i32 > @test_compress_v4i32_zero_passthru (<4 x i32 > %vec , <4 x i1 > %mask ) {
1200
+ define <4 x i32 > @test_compress_v4i32_zero_passthru (<4 x i32 > %vec , <4 x i1 > %mask ) nounwind {
1226
1201
; AVX2-LABEL: test_compress_v4i32_zero_passthru:
1227
1202
; AVX2: # %bb.0:
1228
1203
; AVX2-NEXT: vpslld $31, %xmm1, %xmm1
0 commit comments