127 lines · plain
1# RUN: llc -mtriple=x86_64-linux-gnu -mattr=+avx512f -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=ALL2 3# RUN: llc -mtriple=x86_64-linux-gnu -mattr=+avx512f -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=ALL4 5--- |6 define void @test_extract_128_idx0() {7 ret void8 }9 10 define void @test_extract_128_idx1() {11 ret void12 }13 14 define void @test_extract_256_idx0() {15 ret void16 }17 18 define void @test_extract_256_idx1() {19 ret void20 }21 22...23---24name: test_extract_128_idx025# ALL-LABEL: name: test_extract_128_idx026alignment: 1627legalized: true28regBankSelected: true29# ALL: registers:30# ALL-NEXT: - { id: 0, class: vr512, preferred-register: '', flags: [ ] }31# ALL-NEXT: - { id: 1, class: vr128x, preferred-register: '', flags: [ ] }32registers:33 - { id: 0, class: vecr }34 - { id: 1, class: vecr }35# ALL: %0:vr512 = COPY $zmm136# ALL-NEXT: %1:vr128x = COPY %0.sub_xmm37# ALL-NEXT: $xmm0 = COPY %138# ALL-NEXT: RET 0, implicit $xmm039body: |40 bb.1 (%ir-block.0):41 liveins: $zmm142 43 %0(<16 x s32>) = COPY $zmm144 %1(<4 x s32>) = G_EXTRACT %0(<16 x s32>), 045 $xmm0 = COPY %1(<4 x s32>)46 RET 0, implicit $xmm047 48...49---50name: test_extract_128_idx151# ALL-LABEL: name: test_extract_128_idx152alignment: 1653legalized: true54regBankSelected: true55# ALL: registers:56# ALL-NEXT: - { id: 0, class: vr512, preferred-register: '', flags: [ ] }57# ALL-NEXT: - { id: 1, class: vr128x, preferred-register: '', flags: [ ] }58registers:59 - { id: 0, class: vecr }60 - { id: 1, class: vecr }61# ALL: %0:vr512 = COPY $zmm162# ALL-NEXT: %1:vr128x = VEXTRACTF32X4Zrri %0, 163# ALL-NEXT: $xmm0 = COPY %164# ALL-NEXT: RET 0, implicit $xmm065body: |66 bb.1 (%ir-block.0):67 liveins: $zmm168 69 %0(<16 x s32>) = COPY $zmm170 %1(<4 x s32>) = G_EXTRACT %0(<16 x s32>), 12871 $xmm0 = COPY %1(<4 x s32>)72 RET 0, implicit $xmm073 74...75---76name: test_extract_256_idx077# ALL-LABEL: name: test_extract_256_idx078alignment: 1679legalized: true80regBankSelected: true81# ALL: registers:82# ALL-NEXT: - { id: 0, class: vr512, preferred-register: '', flags: [ ] }83# ALL-NEXT: - { id: 1, class: vr256x, preferred-register: '', flags: [ ] }84registers:85 - { id: 0, class: vecr }86 - { id: 1, class: vecr }87# ALL: %0:vr512 = COPY $zmm188# ALL-NEXT: %1:vr256x = COPY %0.sub_ymm89# ALL-NEXT: $ymm0 = COPY %190# ALL-NEXT: RET 0, implicit $ymm091body: |92 bb.1 (%ir-block.0):93 liveins: $zmm194 95 %0(<16 x s32>) = COPY $zmm196 %1(<8 x s32>) = G_EXTRACT %0(<16 x s32>), 097 $ymm0 = COPY %1(<8 x s32>)98 RET 0, implicit $ymm099 100...101---102name: test_extract_256_idx1103# ALL-LABEL: name: test_extract_256_idx1104alignment: 16105legalized: true106regBankSelected: true107# ALL: registers:108# ALL-NEXT: - { id: 0, class: vr512, preferred-register: '', flags: [ ] }109# ALL-NEXT: - { id: 1, class: vr256x, preferred-register: '', flags: [ ] }110registers:111 - { id: 0, class: vecr }112 - { id: 1, class: vecr }113# ALL: %0:vr512 = COPY $zmm1114# ALL-NEXT: %1:vr256x = VEXTRACTF64X4Zrri %0, 1115# ALL-NEXT: $ymm0 = COPY %1116# ALL-NEXT: RET 0, implicit $ymm0117body: |118 bb.1 (%ir-block.0):119 liveins: $zmm1120 121 %0(<16 x s32>) = COPY $zmm1122 %1(<8 x s32>) = G_EXTRACT %0(<16 x s32>), 256123 $ymm0 = COPY %1(<8 x s32>)124 RET 0, implicit $ymm0125 126...127