[ARM] Adjust how NEON shifts are lowered
[llvm-core.git] / test / CodeGen / X86 / GlobalISel / select-unmerge-vec512.mir
blob2b96ed12dfac708bf8b230243d551c921d5d5369
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_unmerge_v128() {
5     ret void
6   }
8   define void @test_unmerge_v256() {
9     ret void
10   }
12 ...
13 ---
14 name:            test_unmerge_v128
15 alignment:       4
16 legalized:       true
17 regBankSelected: true
18 registers:
19   - { id: 0, class: vecr }
20   - { id: 1, class: vecr }
21   - { id: 2, class: vecr }
22   - { id: 3, class: vecr }
23   - { id: 4, class: vecr }
24 body:             |
25   bb.1 (%ir-block.0):
27     ; ALL-LABEL: name: test_unmerge_v128
28     ; ALL: [[DEF:%[0-9]+]]:vr512 = IMPLICIT_DEF
29     ; ALL: [[COPY:%[0-9]+]]:vr128x = COPY [[DEF]].sub_xmm
30     ; ALL: [[VEXTRACTF32x4Zrr:%[0-9]+]]:vr128x = VEXTRACTF32x4Zrr [[DEF]], 1
31     ; ALL: [[VEXTRACTF32x4Zrr1:%[0-9]+]]:vr128x = VEXTRACTF32x4Zrr [[DEF]], 2
32     ; ALL: [[VEXTRACTF32x4Zrr2:%[0-9]+]]:vr128x = VEXTRACTF32x4Zrr [[DEF]], 3
33     ; ALL: $xmm0 = COPY [[COPY]]
34     ; ALL: RET 0, implicit $xmm0
35     %0(<16 x s32>) = IMPLICIT_DEF
36     %1(<4 x s32>), %2(<4 x s32>), %3(<4 x s32>), %4(<4 x s32>) = G_UNMERGE_VALUES %0(<16 x s32>)
37     $xmm0 = COPY %1(<4 x s32>)
38     RET 0, implicit $xmm0
40 ...
41 ---
42 name:            test_unmerge_v256
43 alignment:       4
44 legalized:       true
45 regBankSelected: true
46 registers:
47   - { id: 0, class: vecr }
48   - { id: 1, class: vecr }
49   - { id: 2, class: vecr }
50 body:             |
51   bb.1 (%ir-block.0):
53     ; ALL-LABEL: name: test_unmerge_v256
54     ; ALL: [[DEF:%[0-9]+]]:vr512 = IMPLICIT_DEF
55     ; ALL: [[COPY:%[0-9]+]]:vr256x = COPY [[DEF]].sub_ymm
56     ; ALL: [[VEXTRACTF64x4Zrr:%[0-9]+]]:vr256x = VEXTRACTF64x4Zrr [[DEF]], 1
57     ; ALL: $ymm0 = COPY [[COPY]]
58     ; ALL: RET 0, implicit $ymm0
59     %0(<16 x s32>) = IMPLICIT_DEF
60     %1(<8 x s32>), %2(<8 x s32>) = G_UNMERGE_VALUES %0(<16 x s32>)
61     $ymm0 = COPY %1(<8 x s32>)
62     RET 0, implicit $ymm0
64 ...