[ARM] Adjust how NEON shifts are lowered
[llvm-core.git] / test / CodeGen / X86 / GlobalISel / regbankselect-AVX512.mir
blobc7c64cfe96a2f80e29653fe509e6c6ef599140ad
1 # RUN: llc -mtriple=x86_64-linux-gnu -mattr=+avx512f                       -run-pass=regbankselect %s -o - | FileCheck %s --check-prefix=CHECK --check-prefix=FAST
2 # RUN: llc -mtriple=x86_64-linux-gnu -mattr=+avx512f -regbankselect-greedy -run-pass=regbankselect %s -o - | FileCheck %s --check-prefix=CHECK --check-prefix=GREEDY
4 --- |
6   define void @test_mul_vec512() {
7     ret void
8   }
10   define void @test_add_vec512() {
11     ret void
12   }
14   define void @test_sub_vec512() {
15     ret void
16   }
18   define <16 x i32> @test_load_v16i32_noalign(<16 x i32>* %p1) {
19     %r = load <16 x i32>, <16 x i32>* %p1, align 1
20     ret <16 x i32> %r
21   }
23   define void @test_store_v16i32_noalign(<16 x i32> %val, <16 x i32>* %p1) {
24     store <16 x i32> %val, <16 x i32>* %p1, align 1
25     ret void
26   }
28 ...
29 ---
30 name:            test_mul_vec512
31 # CHECK-LABEL: name:  test_mul_vec512
32 alignment:       4
33 legalized:       true
34 regBankSelected: false
35 # CHECK:       registers:
36 # CHECK-NEXT:    - { id: 0, class: vecr, preferred-register: '' }
37 # CHECK-NEXT:    - { id: 1, class: vecr, preferred-register: '' }
38 registers:
39   - { id: 0, class: _ }
40   - { id: 1, class: _ }
41 body:             |
42   bb.1 (%ir-block.0):
44     %0(<16 x s32>) = IMPLICIT_DEF
45     %1(<16 x s32>) = G_MUL %0, %0
46     RET 0
48 ...
49 ---
50 name:            test_add_vec512
51 # CHECK-LABEL: name:  test_add_vec512
52 alignment:       4
53 legalized:       true
54 regBankSelected: false
55 # CHECK:       registers:
56 # CHECK-NEXT:    - { id: 0, class: vecr, preferred-register: '' }
57 # CHECK-NEXT:    - { id: 1, class: vecr, preferred-register: '' }
58 registers:
59   - { id: 0, class: _ }
60   - { id: 1, class: _ }
61 body:             |
62   bb.1 (%ir-block.0):
64     %0(<16 x s32>) = IMPLICIT_DEF
65     %1(<16 x s32>) = G_ADD %0, %0
66     RET 0
68 ...
69 ---
70 name:            test_sub_vec512
71 # CHECK-LABEL: name:  test_sub_vec512
72 alignment:       4
73 legalized:       true
74 regBankSelected: false
75 # CHECK:       registers:
76 # CHECK-NEXT:    - { id: 0, class: vecr, preferred-register: '' }
77 # CHECK-NEXT:    - { id: 1, class: vecr, preferred-register: '' }
78 registers:
79   - { id: 0, class: _ }
80   - { id: 1, class: _ }
81 body:             |
82   bb.1 (%ir-block.0):
84     %0(<16 x s32>) = IMPLICIT_DEF
85     %1(<16 x s32>) = G_SUB %0, %0
86     RET 0
87 ...
88 ---
90 name:            test_load_v16i32_noalign
91 # CHECK-LABEL: name:  test_load_v16i32_noalign
92 alignment:       4
93 legalized:       true
94 regBankSelected: false
95 # CHECK:       registers:
96 # CHECK-NEXT:    - { id: 0, class: gpr, preferred-register: '' }
97 # CHECK-NEXT:    - { id: 1, class: vecr, preferred-register: '' }
98 registers:
99   - { id: 0, class: _ }
100   - { id: 1, class: _ }
101 body:             |
102   bb.1 (%ir-block.0):
103     liveins: $rdi
105     %0(p0) = COPY $rdi
106     %1(<16 x s32>) = G_LOAD %0(p0) :: (load 64 from %ir.p1, align 1)
107     $zmm0 = COPY %1(<16 x s32>)
108     RET 0, implicit $zmm0
112 name:            test_store_v16i32_noalign
113 # CHECK-LABEL: name:  test_store_v16i32_noalign
114 alignment:       4
115 legalized:       true
116 regBankSelected: false
117 # CHECK:       registers:
118 # CHECK-NEXT:    - { id: 0, class: vecr, preferred-register: '' }
119 # CHECK-NEXT:    - { id: 1, class: gpr, preferred-register: '' }
120 registers:
121   - { id: 0, class: _ }
122   - { id: 1, class: _ }
123 body:             |
124   bb.1 (%ir-block.0):
125     liveins: $rdi, $zmm0
127     %0(<16 x s32>) = COPY $zmm0
128     %1(p0) = COPY $rdi
129     G_STORE %0(<16 x s32>), %1(p0) :: (store 64 into %ir.p1, align 1)
130     RET 0