[PATCH] D68121: [X86] Model MXCSR for all SSE instructions
Pengfei Wang via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Sep 29 06:46:04 PDT 2019
pengfei marked an inline comment as done.
pengfei added inline comments.
================
Comment at: llvm/test/CodeGen/X86/evex-to-vex-compress.mir:2317
$xmm0 = VMOVZPQILo2PQIZrr $xmm0
- ; CHECK: VCOMISDrm_Int $xmm0, $rdi, 1, $noreg, 0, $noreg, implicit-def $eflags
- VCOMISDZrm_Int $xmm0, $rdi, 1, $noreg, 0, $noreg, implicit-def $eflags
- ; CHECK: VCOMISDrr_Int $xmm0, $xmm1, implicit-def $eflags
- VCOMISDZrr_Int $xmm0, $xmm1, implicit-def $eflags
- ; CHECK: VCOMISSrm_Int $xmm0, $rdi, 1, $noreg, 0, $noreg, implicit-def $eflags
- VCOMISSZrm_Int $xmm0, $rdi, 1, $noreg, 0, $noreg, implicit-def $eflags
- ; CHECK: VCOMISSrr_Int $xmm0, $xmm1, implicit-def $eflags
- VCOMISSZrr_Int $xmm0, $xmm1, implicit-def $eflags
- ; CHECK: VUCOMISDrm_Int $xmm0, $rdi, 1, $noreg, 0, $noreg, implicit-def $eflags
- VUCOMISDZrm_Int $xmm0, $rdi, 1, $noreg, 0, $noreg, implicit-def $eflags
- ; CHECK: VUCOMISDrr_Int $xmm0, $xmm1, implicit-def $eflags
- VUCOMISDZrr_Int $xmm0, $xmm1, implicit-def $eflags
- ; CHECK: VUCOMISSrm_Int $xmm0, $rdi, 1, $noreg, 0, $noreg, implicit-def $eflags
- VUCOMISSZrm_Int $xmm0, $rdi, 1, $noreg, 0, $noreg, implicit-def $eflags
- ; CHECK: VUCOMISSrr_Int $xmm0, $xmm1, implicit-def $eflags
- VUCOMISSZrr_Int $xmm0, $xmm1, implicit-def $eflags
- ; CHECK: VCOMISDrm $xmm0, $rdi, 1, $noreg, 0, $noreg, implicit-def $eflags
- VCOMISDZrm $xmm0, $rdi, 1, $noreg, 0, $noreg, implicit-def $eflags
- ; CHECK: VCOMISDrr $xmm0, $xmm1, implicit-def $eflags
- VCOMISDZrr $xmm0, $xmm1, implicit-def $eflags
- ; CHECK: VCOMISSrm $xmm0, $rdi, 1, $noreg, 0, $noreg, implicit-def $eflags
- VCOMISSZrm $xmm0, $rdi, 1, $noreg, 0, $noreg, implicit-def $eflags
- ; CHECK: VCOMISSrr $xmm0, $xmm1, implicit-def $eflags
- VCOMISSZrr $xmm0, $xmm1, implicit-def $eflags
- ; CHECK: VUCOMISDrm $xmm0, $rdi, 1, $noreg, 0, $noreg, implicit-def $eflags
- VUCOMISDZrm $xmm0, $rdi, 1, $noreg, 0, $noreg, implicit-def $eflags
- ; CHECK: VUCOMISDrr $xmm0, $xmm1, implicit-def $eflags
- VUCOMISDZrr $xmm0, $xmm1, implicit-def $eflags
- ; CHECK: VUCOMISSrm $xmm0, $rdi, 1, $noreg, 0, $noreg, implicit-def $eflags
- VUCOMISSZrm $xmm0, $rdi, 1, $noreg, 0, $noreg, implicit-def $eflags
- ; CHECK: VUCOMISSrr $xmm0, $xmm1, implicit-def $eflags
- VUCOMISSZrr $xmm0, $xmm1, implicit-def $eflags
+ ; CHECK: VCOMISDrm_Int $xmm0, $rdi, 1, $noreg, 0, $noreg, implicit-def $eflags, implicit $mxcsr
+ VCOMISDZrm_Int $xmm0, $rdi, 1, $noreg, 0, $noreg, implicit-def $eflags, implicit $mxcsr
----------------
craig.topper wrote:
> Why are only COMI instructions updated?
We don't have any special test case for checking the operands of MIs, and I checked other target don't either. This file may be the one that checks most AVX/AVX512 MIs, but we only modeled SSE instructions in this patch.
VCOMI shouldn't be updated either. The reason is VCOMISS/VCOMISD are defined is X86InstrSSE.td and using sse12_ord_cmp which I modeled MXCSR in.
In fact, I just made sure all SSE instructions are correctly modeled, not all modeled instructions are SSE. I think it doesn't matter, because it is NFC and we will model AVX instructions next.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D68121/new/
https://reviews.llvm.org/D68121
More information about the llvm-commits
mailing list