
Use uppercase in the subvector description ("32x2" -> "32X4" etc.) - matches what we already do in VBROADCAST??X?, and we try to use uppercase for all x86 instruction mnemonics anyway (and lowercase just for the arg description suffix).
62 lines
1.9 KiB
YAML
62 lines
1.9 KiB
YAML
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
|
|
# RUN: llc -mtriple=x86_64-linux-gnu -mattr=+avx512f -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=ALL
|
|
--- |
|
|
define void @test_merge_v128() {
|
|
ret void
|
|
}
|
|
|
|
define void @test_merge_v256() {
|
|
ret void
|
|
}
|
|
|
|
...
|
|
---
|
|
name: test_merge_v128
|
|
alignment: 16
|
|
legalized: true
|
|
regBankSelected: true
|
|
registers:
|
|
- { id: 0, class: vecr }
|
|
- { id: 1, class: vecr }
|
|
body: |
|
|
bb.1 (%ir-block.0):
|
|
|
|
; ALL-LABEL: name: test_merge_v128
|
|
; ALL: [[DEF:%[0-9]+]]:vr128x = IMPLICIT_DEF
|
|
; ALL: undef %2.sub_xmm:vr512 = COPY [[DEF]]
|
|
; ALL: [[VINSERTF32X4Zrri:%[0-9]+]]:vr512 = VINSERTF32X4Zrri %2, [[DEF]], 1
|
|
; ALL: [[VINSERTF32X4Zrri1:%[0-9]+]]:vr512 = VINSERTF32X4Zrri [[VINSERTF32X4Zrri]], [[DEF]], 2
|
|
; ALL: [[VINSERTF32X4Zrri2:%[0-9]+]]:vr512 = VINSERTF32X4Zrri [[VINSERTF32X4Zrri1]], [[DEF]], 3
|
|
; ALL: $zmm0 = COPY [[VINSERTF32X4Zrri2]]
|
|
; ALL: RET 0, implicit $zmm0
|
|
%0(<4 x s32>) = IMPLICIT_DEF
|
|
%1(<16 x s32>) = G_CONCAT_VECTORS %0(<4 x s32>), %0(<4 x s32>), %0(<4 x s32>), %0(<4 x s32>)
|
|
$zmm0 = COPY %1(<16 x s32>)
|
|
RET 0, implicit $zmm0
|
|
|
|
...
|
|
---
|
|
name: test_merge_v256
|
|
alignment: 16
|
|
legalized: true
|
|
regBankSelected: true
|
|
registers:
|
|
- { id: 0, class: vecr }
|
|
- { id: 1, class: vecr }
|
|
body: |
|
|
bb.1 (%ir-block.0):
|
|
|
|
; ALL-LABEL: name: test_merge_v256
|
|
; ALL: [[DEF:%[0-9]+]]:vr256x = IMPLICIT_DEF
|
|
; ALL: undef %2.sub_ymm:vr512 = COPY [[DEF]]
|
|
; ALL: [[VINSERTF64X4Zrri:%[0-9]+]]:vr512 = VINSERTF64X4Zrri %2, [[DEF]], 1
|
|
; ALL: $zmm0 = COPY [[VINSERTF64X4Zrri]]
|
|
; ALL: RET 0, implicit $zmm0
|
|
%0(<8 x s32>) = IMPLICIT_DEF
|
|
%1(<16 x s32>) = G_CONCAT_VECTORS %0(<8 x s32>), %0(<8 x s32>)
|
|
$zmm0 = COPY %1(<16 x s32>)
|
|
RET 0, implicit $zmm0
|
|
|
|
...
|
|
|