[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / X86 / GlobalISel / select-merge-vec512.mir
blob3c003d6cf926683dd47e6ebbe835c772ca39cf90
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=x86_64-linux-gnu -mattr=+avx512f -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=ALL
3 --- |
4   define void @test_merge_v128() {
5     ret void
6   }
8   define void @test_merge_v256() {
9     ret void
10   }
12 ...
13 ---
14 name:            test_merge_v128
15 alignment:       16
16 legalized:       true
17 regBankSelected: true
18 registers:
19   - { id: 0, class: vecr }
20   - { id: 1, class: vecr }
21 body:             |
22   bb.1 (%ir-block.0):
24     ; ALL-LABEL: name: test_merge_v128
25     ; ALL: [[DEF:%[0-9]+]]:vr128x = IMPLICIT_DEF
26     ; ALL: undef %2.sub_xmm:vr512 = COPY [[DEF]]
27     ; ALL: [[VINSERTF32x4Zrr:%[0-9]+]]:vr512 = VINSERTF32x4Zrr %2, [[DEF]], 1
28     ; ALL: [[VINSERTF32x4Zrr1:%[0-9]+]]:vr512 = VINSERTF32x4Zrr [[VINSERTF32x4Zrr]], [[DEF]], 2
29     ; ALL: [[VINSERTF32x4Zrr2:%[0-9]+]]:vr512 = VINSERTF32x4Zrr [[VINSERTF32x4Zrr1]], [[DEF]], 3
30     ; ALL: $zmm0 = COPY [[VINSERTF32x4Zrr2]]
31     ; ALL: RET 0, implicit $zmm0
32     %0(<4 x s32>) = IMPLICIT_DEF
33     %1(<16 x s32>) = G_CONCAT_VECTORS %0(<4 x s32>), %0(<4 x s32>), %0(<4 x s32>), %0(<4 x s32>)
34     $zmm0 = COPY %1(<16 x s32>)
35     RET 0, implicit $zmm0
37 ...
38 ---
39 name:            test_merge_v256
40 alignment:       16
41 legalized:       true
42 regBankSelected: true
43 registers:
44   - { id: 0, class: vecr }
45   - { id: 1, class: vecr }
46 body:             |
47   bb.1 (%ir-block.0):
49     ; ALL-LABEL: name: test_merge_v256
50     ; ALL: [[DEF:%[0-9]+]]:vr256x = IMPLICIT_DEF
51     ; ALL: undef %2.sub_ymm:vr512 = COPY [[DEF]]
52     ; ALL: [[VINSERTF64x4Zrr:%[0-9]+]]:vr512 = VINSERTF64x4Zrr %2, [[DEF]], 1
53     ; ALL: $zmm0 = COPY [[VINSERTF64x4Zrr]]
54     ; ALL: RET 0, implicit $zmm0
55     %0(<8 x s32>) = IMPLICIT_DEF
56     %1(<16 x s32>) = G_CONCAT_VECTORS %0(<8 x s32>), %0(<8 x s32>)
57     $zmm0 = COPY %1(<16 x s32>)
58     RET 0, implicit $zmm0
60 ...