[ARM] Adjust how NEON shifts are lowered
[llvm-core.git] / test / CodeGen / X86 / GlobalISel / regbankselect-AVX2.mir
blob98a6693645abb029e36773face1648a976310b8a
1 # RUN: llc -mtriple=x86_64-linux-gnu -mattr=+avx2 --global-isel                       -run-pass=regbankselect %s -o - | FileCheck %s --check-prefix=CHECK --check-prefix=FAST
2 # RUN: llc -mtriple=x86_64-linux-gnu -mattr=+avx2 --global-isel -regbankselect-greedy -run-pass=regbankselect %s -o - | FileCheck %s --check-prefix=CHECK --check-prefix=GREEDY
4 --- |
5   define void @test_mul_vec256() {
6     ret void
7   }
9   define void @test_add_vec256() {
10     ret void
11   }
13   define void @test_sub_vec256() {
14     ret void
15   }
17   define <8 x i32> @test_load_v8i32_noalign(<8 x i32>* %p1) {
18     %r = load <8 x i32>, <8 x i32>* %p1, align 1
19     ret <8 x i32> %r
20   }
22   define void @test_store_v8i32_noalign(<8 x i32> %val, <8 x i32>* %p1) {
23     store <8 x i32> %val, <8 x i32>* %p1, align 1
24     ret void
25   }
27 ---
28 name:            test_mul_vec256
29 alignment:       4
30 legalized:       true
31 regBankSelected: false
32 selected:        false
33 tracksRegLiveness: true
34 # CHECK-LABEL: name:            test_mul_vec256
35 # CHECK: registers:
36 # CHECK:  - { id: 0, class: vecr, preferred-register: '' }
37 # CHECK:  - { id: 1, class: vecr, preferred-register: '' }
38 registers:
39   - { id: 0, class: _ }
40   - { id: 1, class: _ }
41   - { id: 2, class: _ }
42 body:             |
43   bb.1 (%ir-block.0):
45     %0(<8 x s32>) = IMPLICIT_DEF
46     %1(<8 x s32>) = G_MUL %0, %0
47     RET 0
49 ...
50 ---
51 name:            test_add_vec256
52 alignment:       4
53 legalized:       true
54 regBankSelected: false
55 selected:        false
56 tracksRegLiveness: true
57 # CHECK-LABEL: name:            test_add_vec256
58 # CHECK: registers:
59 # CHECK:  - { id: 0, class: vecr, preferred-register: '' }
60 # CHECK:  - { id: 1, class: vecr, preferred-register: '' }
61 registers:
62   - { id: 0, class: _ }
63   - { id: 1, class: _ }
64   - { id: 2, class: _ }
65 body:             |
66   bb.1 (%ir-block.0):
68     %0(<8 x s32>) = IMPLICIT_DEF
69     %1(<8 x s32>) = G_ADD %0, %0
70     RET 0
72 ...
73 ---
74 name:            test_sub_vec256
75 alignment:       4
76 legalized:       true
77 regBankSelected: false
78 selected:        false
79 tracksRegLiveness: true
80 # CHECK-LABEL: name:            test_sub_vec256
81 # CHECK: registers:
82 # CHECK:  - { id: 0, class: vecr, preferred-register: '' }
83 # CHECK:  - { id: 1, class: vecr, preferred-register: '' }
84 registers:
85   - { id: 0, class: _ }
86   - { id: 1, class: _ }
87   - { id: 2, class: _ }
88 body:             |
89   bb.1 (%ir-block.0):
91     %0(<8 x s32>) = IMPLICIT_DEF
92     %1(<8 x s32>) = G_SUB %0, %0
93     RET 0
95 ...
96 ---
97 name:            test_load_v8i32_noalign
98 # CHECK-LABEL: name:  test_load_v8i32_noalign
99 alignment:       4
100 legalized:       true
101 regBankSelected: false
102 # CHECK:       registers:
103 # CHECK-NEXT:    - { id: 0, class: gpr, preferred-register: '' }
104 # CHECK-NEXT:    - { id: 1, class: vecr, preferred-register: '' }
105 registers:
106   - { id: 0, class: _ }
107   - { id: 1, class: _ }
108 body:             |
109   bb.1 (%ir-block.0):
110     liveins: $rdi
112     %0(p0) = COPY $rdi
113     %1(<8 x s32>) = G_LOAD %0(p0) :: (load 32 from %ir.p1, align 1)
114     $ymm0 = COPY %1(<8 x s32>)
115     RET 0, implicit $ymm0
119 name:            test_store_v8i32_noalign
120 # CHECK-LABEL: name:  test_store_v8i32_noalign
121 alignment:       4
122 legalized:       true
123 regBankSelected: false
124 # CHECK:       registers:
125 # CHECK-NEXT:    - { id: 0, class: vecr, preferred-register: '' }
126 # CHECK-NEXT:    - { id: 1, class: gpr, preferred-register: '' }
127 registers:
128   - { id: 0, class: _ }
129   - { id: 1, class: _ }
130 body:             |
131   bb.1 (%ir-block.0):
132     liveins: $rdi, $ymm0
134     %0(<8 x s32>) = COPY $ymm0
135     %1(p0) = COPY $rdi
136     G_STORE %0(<8 x s32>), %1(p0) :: (store 32 into %ir.p1, align 1)
137     RET 0