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
5 define void @test_mul_vec256() {
9 define void @test_add_vec256() {
13 define void @test_sub_vec256() {
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
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
31 regBankSelected: false
33 tracksRegLiveness: true
34 # CHECK-LABEL: name: test_mul_vec256
36 # CHECK: - { id: 0, class: vecr, preferred-register: '' }
37 # CHECK: - { id: 1, class: vecr, preferred-register: '' }
45 %0(<8 x s32>) = IMPLICIT_DEF
46 %1(<8 x s32>) = G_MUL %0, %0
54 regBankSelected: false
56 tracksRegLiveness: true
57 # CHECK-LABEL: name: test_add_vec256
59 # CHECK: - { id: 0, class: vecr, preferred-register: '' }
60 # CHECK: - { id: 1, class: vecr, preferred-register: '' }
68 %0(<8 x s32>) = IMPLICIT_DEF
69 %1(<8 x s32>) = G_ADD %0, %0
77 regBankSelected: false
79 tracksRegLiveness: true
80 # CHECK-LABEL: name: test_sub_vec256
82 # CHECK: - { id: 0, class: vecr, preferred-register: '' }
83 # CHECK: - { id: 1, class: vecr, preferred-register: '' }
91 %0(<8 x s32>) = IMPLICIT_DEF
92 %1(<8 x s32>) = G_SUB %0, %0
97 name: test_load_v8i32_noalign
98 # CHECK-LABEL: name: test_load_v8i32_noalign
101 regBankSelected: false
103 # CHECK-NEXT: - { id: 0, class: gpr, preferred-register: '' }
104 # CHECK-NEXT: - { id: 1, class: vecr, preferred-register: '' }
106 - { id: 0, class: _ }
107 - { id: 1, class: _ }
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
123 regBankSelected: false
125 # CHECK-NEXT: - { id: 0, class: vecr, preferred-register: '' }
126 # CHECK-NEXT: - { id: 1, class: gpr, preferred-register: '' }
128 - { id: 0, class: _ }
129 - { id: 1, class: _ }
134 %0(<8 x s32>) = COPY $ymm0
136 G_STORE %0(<8 x s32>), %1(p0) :: (store 32 into %ir.p1, align 1)