blob: db890b784d6de65141611f1863e7245f0469bdfa [file] [edit]
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 6
# RUN: llc -verify-machineinstrs -mcpu=x86-64-v4 -mtriple=x86_64-unknown-unknown -run-pass=break-false-deps %s -o - | FileCheck %s --check-prefixes=FAST,ALL
# RUN: llc -verify-machineinstrs -mcpu=x86-64-v4 -mattr=+false-deps-expand -mtriple=x86_64-unknown-unknown -run-pass=break-false-deps %s -o - | FileCheck %s --check-prefixes=SLOW,ALL
# RUN: llc -verify-machineinstrs -mcpu=skylake-avx512 -mtriple=x86_64-unknown-unknown -run-pass=break-false-deps %s -o - | FileCheck %s --check-prefixes=FAST,ALL
# RUN: llc -verify-machineinstrs -mcpu=icelake-client -mtriple=x86_64-unknown-unknown -run-pass=break-false-deps %s -o - | FileCheck %s --check-prefixes=FAST,ALL
# RUN: llc -verify-machineinstrs -mcpu=sapphirerapids -mtriple=x86_64-unknown-unknown -run-pass=break-false-deps %s -o - | FileCheck %s --check-prefixes=FAST,ALL
# RUN: llc -verify-machineinstrs -mcpu=emeraldrapids -mtriple=x86_64-unknown-unknown -run-pass=break-false-deps %s -o - | FileCheck %s --check-prefixes=FAST,ALL
# RUN: llc -verify-machineinstrs -mcpu=graniterapids -mtriple=x86_64-unknown-unknown -run-pass=break-false-deps %s -o - | FileCheck %s --check-prefixes=FAST,ALL
# RUN: llc -verify-machineinstrs -mcpu=znver4 -mtriple=x86_64-unknown-unknown -run-pass=break-false-deps %s -o - | FileCheck %s --check-prefixes=SLOW,ALL
# RUN: llc -verify-machineinstrs -mcpu=znver4 -mattr=-false-deps-expand -mtriple=x86_64-unknown-unknown -run-pass=break-false-deps %s -o - | FileCheck %s --check-prefixes=FAST,ALL
# RUN: llc -verify-machineinstrs -mcpu=znver5 -mtriple=x86_64-unknown-unknown -run-pass=break-false-deps %s -o - | FileCheck %s --check-prefixes=SLOW,ALL
# RUN: llc -verify-machineinstrs -mcpu=znver5 -mattr=-false-deps-expand -mtriple=x86_64-unknown-unknown -run-pass=break-false-deps %s -o - | FileCheck %s --check-prefixes=FAST,ALL
# RUN: llc -verify-machineinstrs -mcpu=znver6 -mtriple=x86_64-unknown-unknown -run-pass=break-false-deps %s -o - | FileCheck %s --check-prefixes=SLOW,ALL
# RUN: llc -verify-machineinstrs -mcpu=znver6 -mattr=-false-deps-expand -mtriple=x86_64-unknown-unknown -run-pass=break-false-deps %s -o - | FileCheck %s --check-prefixes=FAST,ALL
---
name: expandb_rrz_128
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $xmm0, $xmm1
; FAST-LABEL: name: expandb_rrz_128
; FAST: liveins: $k1, $xmm0, $xmm1
; FAST-NEXT: {{ $}}
; FAST-NEXT: $xmm0 = VPEXPANDBZ128rrkz killed $k1, killed $xmm1
; FAST-NEXT: RET64 killed $xmm0
;
; SLOW-LABEL: name: expandb_rrz_128
; SLOW: liveins: $k1, $xmm0, $xmm1
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VXORPSrr undef $xmm0, undef $xmm0
; SLOW-NEXT: $xmm0 = VPEXPANDBZ128rrkz killed $k1, killed $xmm1, implicit killed $xmm0
; SLOW-NEXT: RET64 killed $xmm0
$xmm0 = VPEXPANDBZ128rrkz killed $k1, killed $xmm1
RET64 killed $xmm0
...
---
name: expandb_rrz_256
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $ymm0, $ymm1
; FAST-LABEL: name: expandb_rrz_256
; FAST: liveins: $k1, $ymm0, $ymm1
; FAST-NEXT: {{ $}}
; FAST-NEXT: $ymm0 = VPEXPANDBZ256rrkz killed $k1, killed $ymm1
; FAST-NEXT: RET64 killed $ymm0
;
; SLOW-LABEL: name: expandb_rrz_256
; SLOW: liveins: $k1, $ymm0, $ymm1
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VXORPSrr undef $xmm0, undef $xmm0, implicit-def $ymm0
; SLOW-NEXT: $ymm0 = VPEXPANDBZ256rrkz killed $k1, killed $ymm1, implicit killed $ymm0
; SLOW-NEXT: RET64 killed $ymm0
$ymm0 = VPEXPANDBZ256rrkz killed $k1, killed $ymm1
RET64 killed $ymm0
...
---
name: expandb_rrz_512
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $zmm0, $zmm1
; FAST-LABEL: name: expandb_rrz_512
; FAST: liveins: $k1, $zmm0, $zmm1
; FAST-NEXT: {{ $}}
; FAST-NEXT: $zmm0 = VPEXPANDBZrrkz killed $k1, killed $zmm1
; FAST-NEXT: RET64 killed $zmm0
;
; SLOW-LABEL: name: expandb_rrz_512
; SLOW: liveins: $k1, $zmm0, $zmm1
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VPXORDZ128rr undef $xmm0, undef $xmm0, implicit-def $zmm0
; SLOW-NEXT: $zmm0 = VPEXPANDBZrrkz killed $k1, killed $zmm1, implicit killed $zmm0
; SLOW-NEXT: RET64 killed $zmm0
$zmm0 = VPEXPANDBZrrkz killed $k1, killed $zmm1
RET64 killed $zmm0
...
---
name: expandw_rrz_128
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $xmm0, $xmm1
; FAST-LABEL: name: expandw_rrz_128
; FAST: liveins: $k1, $xmm0, $xmm1
; FAST-NEXT: {{ $}}
; FAST-NEXT: $xmm0 = VPEXPANDWZ128rrkz killed $k1, killed $xmm1
; FAST-NEXT: RET64 killed $xmm0
;
; SLOW-LABEL: name: expandw_rrz_128
; SLOW: liveins: $k1, $xmm0, $xmm1
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VXORPSrr undef $xmm0, undef $xmm0
; SLOW-NEXT: $xmm0 = VPEXPANDWZ128rrkz killed $k1, killed $xmm1, implicit killed $xmm0
; SLOW-NEXT: RET64 killed $xmm0
$xmm0 = VPEXPANDWZ128rrkz killed $k1, killed $xmm1
RET64 killed $xmm0
...
---
name: expandw_rrz_256
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $ymm0, $ymm1
; FAST-LABEL: name: expandw_rrz_256
; FAST: liveins: $k1, $ymm0, $ymm1
; FAST-NEXT: {{ $}}
; FAST-NEXT: $ymm0 = VPEXPANDWZ256rrkz killed $k1, killed $ymm1
; FAST-NEXT: RET64 killed $ymm0
;
; SLOW-LABEL: name: expandw_rrz_256
; SLOW: liveins: $k1, $ymm0, $ymm1
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VXORPSrr undef $xmm0, undef $xmm0, implicit-def $ymm0
; SLOW-NEXT: $ymm0 = VPEXPANDWZ256rrkz killed $k1, killed $ymm1, implicit killed $ymm0
; SLOW-NEXT: RET64 killed $ymm0
$ymm0 = VPEXPANDWZ256rrkz killed $k1, killed $ymm1
RET64 killed $ymm0
...
---
name: expandw_rrz_512
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $zmm0, $zmm1
; FAST-LABEL: name: expandw_rrz_512
; FAST: liveins: $k1, $zmm0, $zmm1
; FAST-NEXT: {{ $}}
; FAST-NEXT: $zmm0 = VPEXPANDWZrrkz killed $k1, killed $zmm1
; FAST-NEXT: RET64 killed $zmm0
;
; SLOW-LABEL: name: expandw_rrz_512
; SLOW: liveins: $k1, $zmm0, $zmm1
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VPXORDZ128rr undef $xmm0, undef $xmm0, implicit-def $zmm0
; SLOW-NEXT: $zmm0 = VPEXPANDWZrrkz killed $k1, killed $zmm1, implicit killed $zmm0
; SLOW-NEXT: RET64 killed $zmm0
$zmm0 = VPEXPANDWZrrkz killed $k1, killed $zmm1
RET64 killed $zmm0
...
---
name: expandd_rrz_128
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $xmm0, $xmm1
; FAST-LABEL: name: expandd_rrz_128
; FAST: liveins: $k1, $xmm0, $xmm1
; FAST-NEXT: {{ $}}
; FAST-NEXT: $xmm0 = VPEXPANDDZ128rrkz killed $k1, killed $xmm1
; FAST-NEXT: RET64 killed $xmm0
;
; SLOW-LABEL: name: expandd_rrz_128
; SLOW: liveins: $k1, $xmm0, $xmm1
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VXORPSrr undef $xmm0, undef $xmm0
; SLOW-NEXT: $xmm0 = VPEXPANDDZ128rrkz killed $k1, killed $xmm1, implicit killed $xmm0
; SLOW-NEXT: RET64 killed $xmm0
$xmm0 = VPEXPANDDZ128rrkz killed $k1, killed $xmm1
RET64 killed $xmm0
...
---
name: expandd_rrz_256
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $ymm0, $ymm1
; FAST-LABEL: name: expandd_rrz_256
; FAST: liveins: $k1, $ymm0, $ymm1
; FAST-NEXT: {{ $}}
; FAST-NEXT: $ymm0 = VPEXPANDDZ256rrkz killed $k1, killed $ymm1
; FAST-NEXT: RET64 killed $ymm0
;
; SLOW-LABEL: name: expandd_rrz_256
; SLOW: liveins: $k1, $ymm0, $ymm1
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VXORPSrr undef $xmm0, undef $xmm0, implicit-def $ymm0
; SLOW-NEXT: $ymm0 = VPEXPANDDZ256rrkz killed $k1, killed $ymm1, implicit killed $ymm0
; SLOW-NEXT: RET64 killed $ymm0
$ymm0 = VPEXPANDDZ256rrkz killed $k1, killed $ymm1
RET64 killed $ymm0
...
---
name: expandd_rrz_512
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $zmm0, $zmm1
; FAST-LABEL: name: expandd_rrz_512
; FAST: liveins: $k1, $zmm0, $zmm1
; FAST-NEXT: {{ $}}
; FAST-NEXT: $zmm0 = VPEXPANDDZrrkz killed $k1, killed $zmm1
; FAST-NEXT: RET64 killed $zmm0
;
; SLOW-LABEL: name: expandd_rrz_512
; SLOW: liveins: $k1, $zmm0, $zmm1
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VPXORDZ128rr undef $xmm0, undef $xmm0, implicit-def $zmm0
; SLOW-NEXT: $zmm0 = VPEXPANDDZrrkz killed $k1, killed $zmm1, implicit killed $zmm0
; SLOW-NEXT: RET64 killed $zmm0
$zmm0 = VPEXPANDDZrrkz killed $k1, killed $zmm1
RET64 killed $zmm0
...
---
name: expandq_rrz_128
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $xmm0, $xmm1
; FAST-LABEL: name: expandq_rrz_128
; FAST: liveins: $k1, $xmm0, $xmm1
; FAST-NEXT: {{ $}}
; FAST-NEXT: $xmm0 = VPEXPANDQZ128rrkz killed $k1, killed $xmm1
; FAST-NEXT: RET64 killed $xmm0
;
; SLOW-LABEL: name: expandq_rrz_128
; SLOW: liveins: $k1, $xmm0, $xmm1
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VXORPSrr undef $xmm0, undef $xmm0
; SLOW-NEXT: $xmm0 = VPEXPANDQZ128rrkz killed $k1, killed $xmm1, implicit killed $xmm0
; SLOW-NEXT: RET64 killed $xmm0
$xmm0 = VPEXPANDQZ128rrkz killed $k1, killed $xmm1
RET64 killed $xmm0
...
---
name: expandq_rrz_256
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $ymm0, $ymm1
; FAST-LABEL: name: expandq_rrz_256
; FAST: liveins: $k1, $ymm0, $ymm1
; FAST-NEXT: {{ $}}
; FAST-NEXT: $ymm0 = VPEXPANDQZ256rrkz killed $k1, killed $ymm1
; FAST-NEXT: RET64 killed $ymm0
;
; SLOW-LABEL: name: expandq_rrz_256
; SLOW: liveins: $k1, $ymm0, $ymm1
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VXORPSrr undef $xmm0, undef $xmm0, implicit-def $ymm0
; SLOW-NEXT: $ymm0 = VPEXPANDQZ256rrkz killed $k1, killed $ymm1, implicit killed $ymm0
; SLOW-NEXT: RET64 killed $ymm0
$ymm0 = VPEXPANDQZ256rrkz killed $k1, killed $ymm1
RET64 killed $ymm0
...
---
name: expandq_rrz_512
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $zmm0, $zmm1
; FAST-LABEL: name: expandq_rrz_512
; FAST: liveins: $k1, $zmm0, $zmm1
; FAST-NEXT: {{ $}}
; FAST-NEXT: $zmm0 = VPEXPANDQZrrkz killed $k1, killed $zmm1
; FAST-NEXT: RET64 killed $zmm0
;
; SLOW-LABEL: name: expandq_rrz_512
; SLOW: liveins: $k1, $zmm0, $zmm1
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VPXORDZ128rr undef $xmm0, undef $xmm0, implicit-def $zmm0
; SLOW-NEXT: $zmm0 = VPEXPANDQZrrkz killed $k1, killed $zmm1, implicit killed $zmm0
; SLOW-NEXT: RET64 killed $zmm0
$zmm0 = VPEXPANDQZrrkz killed $k1, killed $zmm1
RET64 killed $zmm0
...
---
name: expandps_rrz_128
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $xmm0, $xmm1
; FAST-LABEL: name: expandps_rrz_128
; FAST: liveins: $k1, $xmm0, $xmm1
; FAST-NEXT: {{ $}}
; FAST-NEXT: $xmm0 = VEXPANDPSZ128rrkz killed $k1, killed $xmm1
; FAST-NEXT: RET64 killed $xmm0
;
; SLOW-LABEL: name: expandps_rrz_128
; SLOW: liveins: $k1, $xmm0, $xmm1
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VXORPSrr undef $xmm0, undef $xmm0
; SLOW-NEXT: $xmm0 = VEXPANDPSZ128rrkz killed $k1, killed $xmm1, implicit killed $xmm0
; SLOW-NEXT: RET64 killed $xmm0
$xmm0 = VEXPANDPSZ128rrkz killed $k1, killed $xmm1
RET64 killed $xmm0
...
---
name: expandps_rrz_256
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $ymm0, $ymm1
; FAST-LABEL: name: expandps_rrz_256
; FAST: liveins: $k1, $ymm0, $ymm1
; FAST-NEXT: {{ $}}
; FAST-NEXT: $ymm0 = VEXPANDPSZ256rrkz killed $k1, killed $ymm1
; FAST-NEXT: RET64 killed $ymm0
;
; SLOW-LABEL: name: expandps_rrz_256
; SLOW: liveins: $k1, $ymm0, $ymm1
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VXORPSrr undef $xmm0, undef $xmm0, implicit-def $ymm0
; SLOW-NEXT: $ymm0 = VEXPANDPSZ256rrkz killed $k1, killed $ymm1, implicit killed $ymm0
; SLOW-NEXT: RET64 killed $ymm0
$ymm0 = VEXPANDPSZ256rrkz killed $k1, killed $ymm1
RET64 killed $ymm0
...
---
name: expandps_rrz_512
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $zmm0, $zmm1
; FAST-LABEL: name: expandps_rrz_512
; FAST: liveins: $k1, $zmm0, $zmm1
; FAST-NEXT: {{ $}}
; FAST-NEXT: $zmm0 = VEXPANDPSZrrkz killed $k1, killed $zmm1
; FAST-NEXT: RET64 killed $zmm0
;
; SLOW-LABEL: name: expandps_rrz_512
; SLOW: liveins: $k1, $zmm0, $zmm1
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VPXORDZ128rr undef $xmm0, undef $xmm0, implicit-def $zmm0
; SLOW-NEXT: $zmm0 = VEXPANDPSZrrkz killed $k1, killed $zmm1, implicit killed $zmm0
; SLOW-NEXT: RET64 killed $zmm0
$zmm0 = VEXPANDPSZrrkz killed $k1, killed $zmm1
RET64 killed $zmm0
...
---
name: expandpd_rrz_128
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $xmm0, $xmm1
; FAST-LABEL: name: expandpd_rrz_128
; FAST: liveins: $k1, $xmm0, $xmm1
; FAST-NEXT: {{ $}}
; FAST-NEXT: $xmm0 = VEXPANDPDZ128rrkz killed $k1, killed $xmm1
; FAST-NEXT: RET64 killed $xmm0
;
; SLOW-LABEL: name: expandpd_rrz_128
; SLOW: liveins: $k1, $xmm0, $xmm1
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VXORPSrr undef $xmm0, undef $xmm0
; SLOW-NEXT: $xmm0 = VEXPANDPDZ128rrkz killed $k1, killed $xmm1, implicit killed $xmm0
; SLOW-NEXT: RET64 killed $xmm0
$xmm0 = VEXPANDPDZ128rrkz killed $k1, killed $xmm1
RET64 killed $xmm0
...
---
name: expandpd_rrz_256
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $ymm0, $ymm1
; FAST-LABEL: name: expandpd_rrz_256
; FAST: liveins: $k1, $ymm0, $ymm1
; FAST-NEXT: {{ $}}
; FAST-NEXT: $ymm0 = VEXPANDPDZ256rrkz killed $k1, killed $ymm1
; FAST-NEXT: RET64 killed $ymm0
;
; SLOW-LABEL: name: expandpd_rrz_256
; SLOW: liveins: $k1, $ymm0, $ymm1
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VXORPSrr undef $xmm0, undef $xmm0, implicit-def $ymm0
; SLOW-NEXT: $ymm0 = VEXPANDPDZ256rrkz killed $k1, killed $ymm1, implicit killed $ymm0
; SLOW-NEXT: RET64 killed $ymm0
$ymm0 = VEXPANDPDZ256rrkz killed $k1, killed $ymm1
RET64 killed $ymm0
...
---
name: expandpd_rrz_512
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $zmm0, $zmm1
; FAST-LABEL: name: expandpd_rrz_512
; FAST: liveins: $k1, $zmm0, $zmm1
; FAST-NEXT: {{ $}}
; FAST-NEXT: $zmm0 = VEXPANDPDZrrkz killed $k1, killed $zmm1
; FAST-NEXT: RET64 killed $zmm0
;
; SLOW-LABEL: name: expandpd_rrz_512
; SLOW: liveins: $k1, $zmm0, $zmm1
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VPXORDZ128rr undef $xmm0, undef $xmm0, implicit-def $zmm0
; SLOW-NEXT: $zmm0 = VEXPANDPDZrrkz killed $k1, killed $zmm1, implicit killed $zmm0
; SLOW-NEXT: RET64 killed $zmm0
$zmm0 = VEXPANDPDZrrkz killed $k1, killed $zmm1
RET64 killed $zmm0
...
---
name: expandb_rmz_128
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $xmm0, $rdi
; FAST-LABEL: name: expandb_rmz_128
; FAST: liveins: $k1, $xmm0, $rdi
; FAST-NEXT: {{ $}}
; FAST-NEXT: $xmm0 = VPEXPANDBZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; FAST-NEXT: RET64 killed $xmm0
;
; SLOW-LABEL: name: expandb_rmz_128
; SLOW: liveins: $k1, $xmm0, $rdi
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VXORPSrr undef $xmm0, undef $xmm0
; SLOW-NEXT: $xmm0 = VPEXPANDBZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg, implicit killed $xmm0
; SLOW-NEXT: RET64 killed $xmm0
$xmm0 = VPEXPANDBZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $xmm0
...
---
name: expandb_rmz_256
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $ymm0, $rdi
; FAST-LABEL: name: expandb_rmz_256
; FAST: liveins: $k1, $ymm0, $rdi
; FAST-NEXT: {{ $}}
; FAST-NEXT: $ymm0 = VPEXPANDBZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; FAST-NEXT: RET64 killed $ymm0
;
; SLOW-LABEL: name: expandb_rmz_256
; SLOW: liveins: $k1, $ymm0, $rdi
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VXORPSrr undef $xmm0, undef $xmm0, implicit-def $ymm0
; SLOW-NEXT: $ymm0 = VPEXPANDBZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg, implicit killed $ymm0
; SLOW-NEXT: RET64 killed $ymm0
$ymm0 = VPEXPANDBZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $ymm0
...
---
name: expandb_rmz_512
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $zmm0, $rdi
; FAST-LABEL: name: expandb_rmz_512
; FAST: liveins: $k1, $zmm0, $rdi
; FAST-NEXT: {{ $}}
; FAST-NEXT: $zmm0 = VPEXPANDBZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; FAST-NEXT: RET64 killed $zmm0
;
; SLOW-LABEL: name: expandb_rmz_512
; SLOW: liveins: $k1, $zmm0, $rdi
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VPXORDZ128rr undef $xmm0, undef $xmm0, implicit-def $zmm0
; SLOW-NEXT: $zmm0 = VPEXPANDBZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg, implicit killed $zmm0
; SLOW-NEXT: RET64 killed $zmm0
$zmm0 = VPEXPANDBZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $zmm0
...
---
name: expandw_rmz_128
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $xmm0, $rdi
; FAST-LABEL: name: expandw_rmz_128
; FAST: liveins: $k1, $xmm0, $rdi
; FAST-NEXT: {{ $}}
; FAST-NEXT: $xmm0 = VPEXPANDWZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; FAST-NEXT: RET64 killed $xmm0
;
; SLOW-LABEL: name: expandw_rmz_128
; SLOW: liveins: $k1, $xmm0, $rdi
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VXORPSrr undef $xmm0, undef $xmm0
; SLOW-NEXT: $xmm0 = VPEXPANDWZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg, implicit killed $xmm0
; SLOW-NEXT: RET64 killed $xmm0
$xmm0 = VPEXPANDWZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $xmm0
...
---
name: expandw_rmz_256
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $ymm0, $rdi
; FAST-LABEL: name: expandw_rmz_256
; FAST: liveins: $k1, $ymm0, $rdi
; FAST-NEXT: {{ $}}
; FAST-NEXT: $ymm0 = VPEXPANDWZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; FAST-NEXT: RET64 killed $ymm0
;
; SLOW-LABEL: name: expandw_rmz_256
; SLOW: liveins: $k1, $ymm0, $rdi
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VXORPSrr undef $xmm0, undef $xmm0, implicit-def $ymm0
; SLOW-NEXT: $ymm0 = VPEXPANDWZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg, implicit killed $ymm0
; SLOW-NEXT: RET64 killed $ymm0
$ymm0 = VPEXPANDWZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $ymm0
...
---
name: expandw_rmz_512
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $zmm0, $rdi
; FAST-LABEL: name: expandw_rmz_512
; FAST: liveins: $k1, $zmm0, $rdi
; FAST-NEXT: {{ $}}
; FAST-NEXT: $zmm0 = VPEXPANDWZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; FAST-NEXT: RET64 killed $zmm0
;
; SLOW-LABEL: name: expandw_rmz_512
; SLOW: liveins: $k1, $zmm0, $rdi
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VPXORDZ128rr undef $xmm0, undef $xmm0, implicit-def $zmm0
; SLOW-NEXT: $zmm0 = VPEXPANDWZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg, implicit killed $zmm0
; SLOW-NEXT: RET64 killed $zmm0
$zmm0 = VPEXPANDWZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $zmm0
...
---
name: expandd_rmz_128
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $xmm0, $rdi
; FAST-LABEL: name: expandd_rmz_128
; FAST: liveins: $k1, $xmm0, $rdi
; FAST-NEXT: {{ $}}
; FAST-NEXT: $xmm0 = VPEXPANDDZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; FAST-NEXT: RET64 killed $xmm0
;
; SLOW-LABEL: name: expandd_rmz_128
; SLOW: liveins: $k1, $xmm0, $rdi
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VXORPSrr undef $xmm0, undef $xmm0
; SLOW-NEXT: $xmm0 = VPEXPANDDZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg, implicit killed $xmm0
; SLOW-NEXT: RET64 killed $xmm0
$xmm0 = VPEXPANDDZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $xmm0
...
---
name: expandd_rmz_256
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $ymm0, $rdi
; FAST-LABEL: name: expandd_rmz_256
; FAST: liveins: $k1, $ymm0, $rdi
; FAST-NEXT: {{ $}}
; FAST-NEXT: $ymm0 = VPEXPANDDZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; FAST-NEXT: RET64 killed $ymm0
;
; SLOW-LABEL: name: expandd_rmz_256
; SLOW: liveins: $k1, $ymm0, $rdi
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VXORPSrr undef $xmm0, undef $xmm0, implicit-def $ymm0
; SLOW-NEXT: $ymm0 = VPEXPANDDZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg, implicit killed $ymm0
; SLOW-NEXT: RET64 killed $ymm0
$ymm0 = VPEXPANDDZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $ymm0
...
---
name: expandd_rmz_512
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $zmm0, $rdi
; FAST-LABEL: name: expandd_rmz_512
; FAST: liveins: $k1, $zmm0, $rdi
; FAST-NEXT: {{ $}}
; FAST-NEXT: $zmm0 = VPEXPANDDZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; FAST-NEXT: RET64 killed $zmm0
;
; SLOW-LABEL: name: expandd_rmz_512
; SLOW: liveins: $k1, $zmm0, $rdi
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VPXORDZ128rr undef $xmm0, undef $xmm0, implicit-def $zmm0
; SLOW-NEXT: $zmm0 = VPEXPANDDZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg, implicit killed $zmm0
; SLOW-NEXT: RET64 killed $zmm0
$zmm0 = VPEXPANDDZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $zmm0
...
---
name: expandq_rmz_128
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $xmm0, $rdi
; FAST-LABEL: name: expandq_rmz_128
; FAST: liveins: $k1, $xmm0, $rdi
; FAST-NEXT: {{ $}}
; FAST-NEXT: $xmm0 = VPEXPANDQZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; FAST-NEXT: RET64 killed $xmm0
;
; SLOW-LABEL: name: expandq_rmz_128
; SLOW: liveins: $k1, $xmm0, $rdi
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VXORPSrr undef $xmm0, undef $xmm0
; SLOW-NEXT: $xmm0 = VPEXPANDQZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg, implicit killed $xmm0
; SLOW-NEXT: RET64 killed $xmm0
$xmm0 = VPEXPANDQZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $xmm0
...
---
name: expandq_rmz_256
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $ymm0, $rdi
; FAST-LABEL: name: expandq_rmz_256
; FAST: liveins: $k1, $ymm0, $rdi
; FAST-NEXT: {{ $}}
; FAST-NEXT: $ymm0 = VPEXPANDQZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; FAST-NEXT: RET64 killed $ymm0
;
; SLOW-LABEL: name: expandq_rmz_256
; SLOW: liveins: $k1, $ymm0, $rdi
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VXORPSrr undef $xmm0, undef $xmm0, implicit-def $ymm0
; SLOW-NEXT: $ymm0 = VPEXPANDQZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg, implicit killed $ymm0
; SLOW-NEXT: RET64 killed $ymm0
$ymm0 = VPEXPANDQZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $ymm0
...
---
name: expandq_rmz_512
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $zmm0, $rdi
; FAST-LABEL: name: expandq_rmz_512
; FAST: liveins: $k1, $zmm0, $rdi
; FAST-NEXT: {{ $}}
; FAST-NEXT: $zmm0 = VPEXPANDQZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; FAST-NEXT: RET64 killed $zmm0
;
; SLOW-LABEL: name: expandq_rmz_512
; SLOW: liveins: $k1, $zmm0, $rdi
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VPXORDZ128rr undef $xmm0, undef $xmm0, implicit-def $zmm0
; SLOW-NEXT: $zmm0 = VPEXPANDQZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg, implicit killed $zmm0
; SLOW-NEXT: RET64 killed $zmm0
$zmm0 = VPEXPANDQZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $zmm0
...
---
name: expandps_rmz_128
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $xmm0, $rdi
; FAST-LABEL: name: expandps_rmz_128
; FAST: liveins: $k1, $xmm0, $rdi
; FAST-NEXT: {{ $}}
; FAST-NEXT: $xmm0 = VEXPANDPSZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; FAST-NEXT: RET64 killed $xmm0
;
; SLOW-LABEL: name: expandps_rmz_128
; SLOW: liveins: $k1, $xmm0, $rdi
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VXORPSrr undef $xmm0, undef $xmm0
; SLOW-NEXT: $xmm0 = VEXPANDPSZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg, implicit killed $xmm0
; SLOW-NEXT: RET64 killed $xmm0
$xmm0 = VEXPANDPSZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $xmm0
...
---
name: expandps_rmz_256
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $ymm0, $rdi
; FAST-LABEL: name: expandps_rmz_256
; FAST: liveins: $k1, $ymm0, $rdi
; FAST-NEXT: {{ $}}
; FAST-NEXT: $ymm0 = VEXPANDPSZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; FAST-NEXT: RET64 killed $ymm0
;
; SLOW-LABEL: name: expandps_rmz_256
; SLOW: liveins: $k1, $ymm0, $rdi
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VXORPSrr undef $xmm0, undef $xmm0, implicit-def $ymm0
; SLOW-NEXT: $ymm0 = VEXPANDPSZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg, implicit killed $ymm0
; SLOW-NEXT: RET64 killed $ymm0
$ymm0 = VEXPANDPSZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $ymm0
...
---
name: expandps_rmz_512
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $zmm0, $rdi
; FAST-LABEL: name: expandps_rmz_512
; FAST: liveins: $k1, $zmm0, $rdi
; FAST-NEXT: {{ $}}
; FAST-NEXT: $zmm0 = VEXPANDPSZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; FAST-NEXT: RET64 killed $zmm0
;
; SLOW-LABEL: name: expandps_rmz_512
; SLOW: liveins: $k1, $zmm0, $rdi
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VPXORDZ128rr undef $xmm0, undef $xmm0, implicit-def $zmm0
; SLOW-NEXT: $zmm0 = VEXPANDPSZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg, implicit killed $zmm0
; SLOW-NEXT: RET64 killed $zmm0
$zmm0 = VEXPANDPSZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $zmm0
...
---
name: expandpd_rmz_128
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $xmm0, $rdi
; FAST-LABEL: name: expandpd_rmz_128
; FAST: liveins: $k1, $xmm0, $rdi
; FAST-NEXT: {{ $}}
; FAST-NEXT: $xmm0 = VEXPANDPDZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; FAST-NEXT: RET64 killed $xmm0
;
; SLOW-LABEL: name: expandpd_rmz_128
; SLOW: liveins: $k1, $xmm0, $rdi
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VXORPSrr undef $xmm0, undef $xmm0
; SLOW-NEXT: $xmm0 = VEXPANDPDZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg, implicit killed $xmm0
; SLOW-NEXT: RET64 killed $xmm0
$xmm0 = VEXPANDPDZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $xmm0
...
---
name: expandpd_rmz_256
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $ymm0, $rdi
; FAST-LABEL: name: expandpd_rmz_256
; FAST: liveins: $k1, $ymm0, $rdi
; FAST-NEXT: {{ $}}
; FAST-NEXT: $ymm0 = VEXPANDPDZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; FAST-NEXT: RET64 killed $ymm0
;
; SLOW-LABEL: name: expandpd_rmz_256
; SLOW: liveins: $k1, $ymm0, $rdi
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VXORPSrr undef $xmm0, undef $xmm0, implicit-def $ymm0
; SLOW-NEXT: $ymm0 = VEXPANDPDZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg, implicit killed $ymm0
; SLOW-NEXT: RET64 killed $ymm0
$ymm0 = VEXPANDPDZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $ymm0
...
---
name: expandpd_rmz_512
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $zmm0, $rdi
; FAST-LABEL: name: expandpd_rmz_512
; FAST: liveins: $k1, $zmm0, $rdi
; FAST-NEXT: {{ $}}
; FAST-NEXT: $zmm0 = VEXPANDPDZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; FAST-NEXT: RET64 killed $zmm0
;
; SLOW-LABEL: name: expandpd_rmz_512
; SLOW: liveins: $k1, $zmm0, $rdi
; SLOW-NEXT: {{ $}}
; SLOW-NEXT: $xmm0 = VPXORDZ128rr undef $xmm0, undef $xmm0, implicit-def $zmm0
; SLOW-NEXT: $zmm0 = VEXPANDPDZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg, implicit killed $zmm0
; SLOW-NEXT: RET64 killed $zmm0
$zmm0 = VEXPANDPDZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $zmm0
...
---
name: no_break_expandb_rrz_128
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $xmm1
; ALL-LABEL: name: no_break_expandb_rrz_128
; ALL: liveins: $k1, $xmm1
; ALL-NEXT: {{ $}}
; ALL-NEXT: $xmm0 = VPEXPANDBZ128rrkz $k1, killed $xmm1
; ALL-NEXT: $xmm0 = VPEXPANDBZ128rrkz killed $k1, killed $xmm0
; ALL-NEXT: RET64 killed $xmm0
$xmm0 = VPEXPANDBZ128rrkz $k1, killed $xmm1
$xmm0 = VPEXPANDBZ128rrkz killed $k1, killed $xmm0
RET64 killed $xmm0
...
---
name: no_break_expandb_rrz_256
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $ymm1
; ALL-LABEL: name: no_break_expandb_rrz_256
; ALL: liveins: $k1, $ymm1
; ALL-NEXT: {{ $}}
; ALL-NEXT: $ymm0 = VPEXPANDBZ256rrkz $k1, killed $ymm1
; ALL-NEXT: $ymm0 = VPEXPANDBZ256rrkz killed $k1, killed $ymm0
; ALL-NEXT: RET64 killed $ymm0
$ymm0 = VPEXPANDBZ256rrkz $k1, killed $ymm1
$ymm0 = VPEXPANDBZ256rrkz killed $k1, killed $ymm0
RET64 killed $ymm0
...
---
name: no_break_expandb_rrz_512
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $zmm1
; ALL-LABEL: name: no_break_expandb_rrz_512
; ALL: liveins: $k1, $zmm1
; ALL-NEXT: {{ $}}
; ALL-NEXT: $zmm0 = VPEXPANDBZrrkz $k1, killed $zmm1
; ALL-NEXT: $zmm0 = VPEXPANDBZrrkz killed $k1, killed $zmm0
; ALL-NEXT: RET64 killed $zmm0
$zmm0 = VPEXPANDBZrrkz $k1, killed $zmm1
$zmm0 = VPEXPANDBZrrkz killed $k1, killed $zmm0
RET64 killed $zmm0
...
---
name: no_break_expandw_rrz_128
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $xmm1
; ALL-LABEL: name: no_break_expandw_rrz_128
; ALL: liveins: $k1, $xmm1
; ALL-NEXT: {{ $}}
; ALL-NEXT: $xmm0 = VPEXPANDWZ128rrkz $k1, killed $xmm1
; ALL-NEXT: $xmm0 = VPEXPANDWZ128rrkz killed $k1, killed $xmm0
; ALL-NEXT: RET64 killed $xmm0
$xmm0 = VPEXPANDWZ128rrkz $k1, killed $xmm1
$xmm0 = VPEXPANDWZ128rrkz killed $k1, killed $xmm0
RET64 killed $xmm0
...
---
name: no_break_expandw_rrz_256
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $ymm1
; ALL-LABEL: name: no_break_expandw_rrz_256
; ALL: liveins: $k1, $ymm1
; ALL-NEXT: {{ $}}
; ALL-NEXT: $ymm0 = VPEXPANDWZ256rrkz $k1, killed $ymm1
; ALL-NEXT: $ymm0 = VPEXPANDWZ256rrkz killed $k1, killed $ymm0
; ALL-NEXT: RET64 killed $ymm0
$ymm0 = VPEXPANDWZ256rrkz $k1, killed $ymm1
$ymm0 = VPEXPANDWZ256rrkz killed $k1, killed $ymm0
RET64 killed $ymm0
...
---
name: no_break_expandw_rrz_512
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $zmm1
; ALL-LABEL: name: no_break_expandw_rrz_512
; ALL: liveins: $k1, $zmm1
; ALL-NEXT: {{ $}}
; ALL-NEXT: $zmm0 = VPEXPANDWZrrkz $k1, killed $zmm1
; ALL-NEXT: $zmm0 = VPEXPANDWZrrkz killed $k1, killed $zmm0
; ALL-NEXT: RET64 killed $zmm0
$zmm0 = VPEXPANDWZrrkz $k1, killed $zmm1
$zmm0 = VPEXPANDWZrrkz killed $k1, killed $zmm0
RET64 killed $zmm0
...
---
name: no_break_expandd_rrz_128
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $xmm1
; ALL-LABEL: name: no_break_expandd_rrz_128
; ALL: liveins: $k1, $xmm1
; ALL-NEXT: {{ $}}
; ALL-NEXT: $xmm0 = VPEXPANDDZ128rrkz $k1, killed $xmm1
; ALL-NEXT: $xmm0 = VPEXPANDDZ128rrkz killed $k1, killed $xmm0
; ALL-NEXT: RET64 killed $xmm0
$xmm0 = VPEXPANDDZ128rrkz $k1, killed $xmm1
$xmm0 = VPEXPANDDZ128rrkz killed $k1, killed $xmm0
RET64 killed $xmm0
...
---
name: no_break_expandd_rrz_256
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $ymm1
; ALL-LABEL: name: no_break_expandd_rrz_256
; ALL: liveins: $k1, $ymm1
; ALL-NEXT: {{ $}}
; ALL-NEXT: $ymm0 = VPEXPANDDZ256rrkz $k1, killed $ymm1
; ALL-NEXT: $ymm0 = VPEXPANDDZ256rrkz killed $k1, killed $ymm0
; ALL-NEXT: RET64 killed $ymm0
$ymm0 = VPEXPANDDZ256rrkz $k1, killed $ymm1
$ymm0 = VPEXPANDDZ256rrkz killed $k1, killed $ymm0
RET64 killed $ymm0
...
---
name: no_break_expandd_rrz_512
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $zmm1
; ALL-LABEL: name: no_break_expandd_rrz_512
; ALL: liveins: $k1, $zmm1
; ALL-NEXT: {{ $}}
; ALL-NEXT: $zmm0 = VPEXPANDDZrrkz $k1, killed $zmm1
; ALL-NEXT: $zmm0 = VPEXPANDDZrrkz killed $k1, killed $zmm0
; ALL-NEXT: RET64 killed $zmm0
$zmm0 = VPEXPANDDZrrkz $k1, killed $zmm1
$zmm0 = VPEXPANDDZrrkz killed $k1, killed $zmm0
RET64 killed $zmm0
...
---
name: no_break_expandq_rrz_128
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $xmm1
; ALL-LABEL: name: no_break_expandq_rrz_128
; ALL: liveins: $k1, $xmm1
; ALL-NEXT: {{ $}}
; ALL-NEXT: $xmm0 = VPEXPANDQZ128rrkz $k1, killed $xmm1
; ALL-NEXT: $xmm0 = VPEXPANDQZ128rrkz killed $k1, killed $xmm0
; ALL-NEXT: RET64 killed $xmm0
$xmm0 = VPEXPANDQZ128rrkz $k1, killed $xmm1
$xmm0 = VPEXPANDQZ128rrkz killed $k1, killed $xmm0
RET64 killed $xmm0
...
---
name: no_break_expandq_rrz_256
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $ymm1
; ALL-LABEL: name: no_break_expandq_rrz_256
; ALL: liveins: $k1, $ymm1
; ALL-NEXT: {{ $}}
; ALL-NEXT: $ymm0 = VPEXPANDQZ256rrkz $k1, killed $ymm1
; ALL-NEXT: $ymm0 = VPEXPANDQZ256rrkz killed $k1, killed $ymm0
; ALL-NEXT: RET64 killed $ymm0
$ymm0 = VPEXPANDQZ256rrkz $k1, killed $ymm1
$ymm0 = VPEXPANDQZ256rrkz killed $k1, killed $ymm0
RET64 killed $ymm0
...
---
name: no_break_expandq_rrz_512
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $zmm1
; ALL-LABEL: name: no_break_expandq_rrz_512
; ALL: liveins: $k1, $zmm1
; ALL-NEXT: {{ $}}
; ALL-NEXT: $zmm0 = VPEXPANDQZrrkz $k1, killed $zmm1
; ALL-NEXT: $zmm0 = VPEXPANDQZrrkz killed $k1, killed $zmm0
; ALL-NEXT: RET64 killed $zmm0
$zmm0 = VPEXPANDQZrrkz $k1, killed $zmm1
$zmm0 = VPEXPANDQZrrkz killed $k1, killed $zmm0
RET64 killed $zmm0
...
---
name: no_break_expandps_rrz_128
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $xmm1
; ALL-LABEL: name: no_break_expandps_rrz_128
; ALL: liveins: $k1, $xmm1
; ALL-NEXT: {{ $}}
; ALL-NEXT: $xmm0 = VEXPANDPSZ128rrkz $k1, killed $xmm1
; ALL-NEXT: $xmm0 = VEXPANDPSZ128rrkz killed $k1, killed $xmm0
; ALL-NEXT: RET64 killed $xmm0
$xmm0 = VEXPANDPSZ128rrkz $k1, killed $xmm1
$xmm0 = VEXPANDPSZ128rrkz killed $k1, killed $xmm0
RET64 killed $xmm0
...
---
name: no_break_expandps_rrz_256
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $ymm1
; ALL-LABEL: name: no_break_expandps_rrz_256
; ALL: liveins: $k1, $ymm1
; ALL-NEXT: {{ $}}
; ALL-NEXT: $ymm0 = VEXPANDPSZ256rrkz $k1, killed $ymm1
; ALL-NEXT: $ymm0 = VEXPANDPSZ256rrkz killed $k1, killed $ymm0
; ALL-NEXT: RET64 killed $ymm0
$ymm0 = VEXPANDPSZ256rrkz $k1, killed $ymm1
$ymm0 = VEXPANDPSZ256rrkz killed $k1, killed $ymm0
RET64 killed $ymm0
...
---
name: no_break_expandps_rrz_512
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $zmm1
; ALL-LABEL: name: no_break_expandps_rrz_512
; ALL: liveins: $k1, $zmm1
; ALL-NEXT: {{ $}}
; ALL-NEXT: $zmm0 = VEXPANDPSZrrkz $k1, killed $zmm1
; ALL-NEXT: $zmm0 = VEXPANDPSZrrkz killed $k1, killed $zmm0
; ALL-NEXT: RET64 killed $zmm0
$zmm0 = VEXPANDPSZrrkz $k1, killed $zmm1
$zmm0 = VEXPANDPSZrrkz killed $k1, killed $zmm0
RET64 killed $zmm0
...
---
name: no_break_expandpd_rrz_128
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $xmm1
; ALL-LABEL: name: no_break_expandpd_rrz_128
; ALL: liveins: $k1, $xmm1
; ALL-NEXT: {{ $}}
; ALL-NEXT: $xmm0 = VEXPANDPDZ128rrkz $k1, killed $xmm1
; ALL-NEXT: $xmm0 = VEXPANDPDZ128rrkz killed $k1, killed $xmm0
; ALL-NEXT: RET64 killed $xmm0
$xmm0 = VEXPANDPDZ128rrkz $k1, killed $xmm1
$xmm0 = VEXPANDPDZ128rrkz killed $k1, killed $xmm0
RET64 killed $xmm0
...
---
name: no_break_expandpd_rrz_256
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $ymm1
; ALL-LABEL: name: no_break_expandpd_rrz_256
; ALL: liveins: $k1, $ymm1
; ALL-NEXT: {{ $}}
; ALL-NEXT: $ymm0 = VEXPANDPDZ256rrkz $k1, killed $ymm1
; ALL-NEXT: $ymm0 = VEXPANDPDZ256rrkz killed $k1, killed $ymm0
; ALL-NEXT: RET64 killed $ymm0
$ymm0 = VEXPANDPDZ256rrkz $k1, killed $ymm1
$ymm0 = VEXPANDPDZ256rrkz killed $k1, killed $ymm0
RET64 killed $ymm0
...
---
name: no_break_expandpd_rrz_512
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $zmm1
; ALL-LABEL: name: no_break_expandpd_rrz_512
; ALL: liveins: $k1, $zmm1
; ALL-NEXT: {{ $}}
; ALL-NEXT: $zmm0 = VEXPANDPDZrrkz $k1, killed $zmm1
; ALL-NEXT: $zmm0 = VEXPANDPDZrrkz killed $k1, killed $zmm0
; ALL-NEXT: RET64 killed $zmm0
$zmm0 = VEXPANDPDZrrkz $k1, killed $zmm1
$zmm0 = VEXPANDPDZrrkz killed $k1, killed $zmm0
RET64 killed $zmm0
...
---
name: no_break_expandb_rmz_128
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $rdi
; ALL-LABEL: name: no_break_expandb_rmz_128
; ALL: liveins: $k1, $rdi
; ALL-NEXT: {{ $}}
; ALL-NEXT: $xmm0 = VPEXPANDBZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; ALL-NEXT: RET64 killed $xmm0
$xmm0 = VPEXPANDBZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $xmm0
...
---
name: no_break_expandb_rmz_256
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $rdi
; ALL-LABEL: name: no_break_expandb_rmz_256
; ALL: liveins: $k1, $rdi
; ALL-NEXT: {{ $}}
; ALL-NEXT: $ymm0 = VPEXPANDBZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; ALL-NEXT: RET64 killed $ymm0
$ymm0 = VPEXPANDBZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $ymm0
...
---
name: no_break_expandb_rmz_512
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $rdi
; ALL-LABEL: name: no_break_expandb_rmz_512
; ALL: liveins: $k1, $rdi
; ALL-NEXT: {{ $}}
; ALL-NEXT: $zmm0 = VPEXPANDBZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; ALL-NEXT: RET64 killed $zmm0
$zmm0 = VPEXPANDBZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $zmm0
...
---
name: no_break_expandw_rmz_128
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $rdi
; ALL-LABEL: name: no_break_expandw_rmz_128
; ALL: liveins: $k1, $rdi
; ALL-NEXT: {{ $}}
; ALL-NEXT: $xmm0 = VPEXPANDWZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; ALL-NEXT: RET64 killed $xmm0
$xmm0 = VPEXPANDWZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $xmm0
...
---
name: no_break_expandw_rmz_256
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $rdi
; ALL-LABEL: name: no_break_expandw_rmz_256
; ALL: liveins: $k1, $rdi
; ALL-NEXT: {{ $}}
; ALL-NEXT: $ymm0 = VPEXPANDWZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; ALL-NEXT: RET64 killed $ymm0
$ymm0 = VPEXPANDWZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $ymm0
...
---
name: no_break_expandw_rmz_512
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $rdi
; ALL-LABEL: name: no_break_expandw_rmz_512
; ALL: liveins: $k1, $rdi
; ALL-NEXT: {{ $}}
; ALL-NEXT: $zmm0 = VPEXPANDWZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; ALL-NEXT: RET64 killed $zmm0
$zmm0 = VPEXPANDWZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $zmm0
...
---
name: no_break_expandd_rmz_128
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $rdi
; ALL-LABEL: name: no_break_expandd_rmz_128
; ALL: liveins: $k1, $rdi
; ALL-NEXT: {{ $}}
; ALL-NEXT: $xmm0 = VPEXPANDDZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; ALL-NEXT: RET64 killed $xmm0
$xmm0 = VPEXPANDDZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $xmm0
...
---
name: no_break_expandd_rmz_256
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $rdi
; ALL-LABEL: name: no_break_expandd_rmz_256
; ALL: liveins: $k1, $rdi
; ALL-NEXT: {{ $}}
; ALL-NEXT: $ymm0 = VPEXPANDDZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; ALL-NEXT: RET64 killed $ymm0
$ymm0 = VPEXPANDDZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $ymm0
...
---
name: no_break_expandd_rmz_512
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $rdi
; ALL-LABEL: name: no_break_expandd_rmz_512
; ALL: liveins: $k1, $rdi
; ALL-NEXT: {{ $}}
; ALL-NEXT: $zmm0 = VPEXPANDDZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; ALL-NEXT: RET64 killed $zmm0
$zmm0 = VPEXPANDDZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $zmm0
...
---
name: no_break_expandq_rmz_128
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $rdi
; ALL-LABEL: name: no_break_expandq_rmz_128
; ALL: liveins: $k1, $rdi
; ALL-NEXT: {{ $}}
; ALL-NEXT: $xmm0 = VPEXPANDQZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; ALL-NEXT: RET64 killed $xmm0
$xmm0 = VPEXPANDQZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $xmm0
...
---
name: no_break_expandq_rmz_256
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $rdi
; ALL-LABEL: name: no_break_expandq_rmz_256
; ALL: liveins: $k1, $rdi
; ALL-NEXT: {{ $}}
; ALL-NEXT: $ymm0 = VPEXPANDQZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; ALL-NEXT: RET64 killed $ymm0
$ymm0 = VPEXPANDQZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $ymm0
...
---
name: no_break_expandq_rmz_512
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $rdi
; ALL-LABEL: name: no_break_expandq_rmz_512
; ALL: liveins: $k1, $rdi
; ALL-NEXT: {{ $}}
; ALL-NEXT: $zmm0 = VPEXPANDQZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; ALL-NEXT: RET64 killed $zmm0
$zmm0 = VPEXPANDQZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $zmm0
...
---
name: no_break_expandps_rmz_128
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $rdi
; ALL-LABEL: name: no_break_expandps_rmz_128
; ALL: liveins: $k1, $rdi
; ALL-NEXT: {{ $}}
; ALL-NEXT: $xmm0 = VEXPANDPSZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; ALL-NEXT: RET64 killed $xmm0
$xmm0 = VEXPANDPSZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $xmm0
...
---
name: no_break_expandps_rmz_256
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $rdi
; ALL-LABEL: name: no_break_expandps_rmz_256
; ALL: liveins: $k1, $rdi
; ALL-NEXT: {{ $}}
; ALL-NEXT: $ymm0 = VEXPANDPSZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; ALL-NEXT: RET64 killed $ymm0
$ymm0 = VEXPANDPSZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $ymm0
...
---
name: no_break_expandps_rmz_512
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $rdi
; ALL-LABEL: name: no_break_expandps_rmz_512
; ALL: liveins: $k1, $rdi
; ALL-NEXT: {{ $}}
; ALL-NEXT: $zmm0 = VEXPANDPSZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; ALL-NEXT: RET64 killed $zmm0
$zmm0 = VEXPANDPSZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $zmm0
...
---
name: no_break_expandpd_rmz_128
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $rdi
; ALL-LABEL: name: no_break_expandpd_rmz_128
; ALL: liveins: $k1, $rdi
; ALL-NEXT: {{ $}}
; ALL-NEXT: $xmm0 = VEXPANDPDZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; ALL-NEXT: RET64 killed $xmm0
$xmm0 = VEXPANDPDZ128rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $xmm0
...
---
name: no_break_expandpd_rmz_256
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $rdi
; ALL-LABEL: name: no_break_expandpd_rmz_256
; ALL: liveins: $k1, $rdi
; ALL-NEXT: {{ $}}
; ALL-NEXT: $ymm0 = VEXPANDPDZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; ALL-NEXT: RET64 killed $ymm0
$ymm0 = VEXPANDPDZ256rmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $ymm0
...
---
name: no_break_expandpd_rmz_512
tracksRegLiveness: true
registers: []
body: |
bb.0:
liveins: $k1, $rdi
; ALL-LABEL: name: no_break_expandpd_rmz_512
; ALL: liveins: $k1, $rdi
; ALL-NEXT: {{ $}}
; ALL-NEXT: $zmm0 = VEXPANDPDZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
; ALL-NEXT: RET64 killed $zmm0
$zmm0 = VEXPANDPDZrmkz killed $k1, killed $rdi, 1, $noreg, 0, $noreg
RET64 killed $zmm0
...