Support APX CFCMOV

Message ID 20240617061808.982148-1-lili.cui@intel.com
State New
Headers
Series Support APX CFCMOV |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_binutils_build--master-arm fail Patch failed to apply
linaro-tcwg-bot/tcwg_binutils_build--master-aarch64 fail Patch failed to apply

Commit Message

Cui, Lili June 17, 2024, 6:18 a.m. UTC
  The CMOVcc instruction proposed by EVEX has four different forms,
corresponding to the four possible combinations of EVEX.ND and EVEX.NF
values.

In the encoder part, when the CFCMOV template supports nf, it means that
it requires EVEX.NF to be 1.

In the decoder part, CFCMOV_Fixup_op0 and CFCMOV_Fixup_op1 are used to
reversethe source and destination operands in the 2-operand case.

gas/ChangeLog:

        * config/tc-i386.c (install_template): Set NF bit for cfcmov
	when the insn template supports nf.
        * testsuite/gas/i386/x86-64.exp: Add tests for cfcmov.
        * testsuite/gas/i386/x86-64-apx-cfcmov-intel.d: New test.
        * testsuite/gas/i386/x86-64-apx-cfcmov.d: Ditto.
        * testsuite/gas/i386/x86-64-apx-cfcmov.s: Ditto.

opcodes/ChangeLog:

        * i386-dis-evex-prefix.h: Add cfcmov instructions.
        * i386-dis.c (CFCMOV_Fixup_op0): New.
        (CFCMOV_Fixup_op1): Ditto.
        (putop): Print 'cf' for cfcmov instructions.
        * i386-opc.tbl: Add cfcmov instructions.
---
 gas/config/tc-i386.c                          |   4 +-
 .../gas/i386/x86-64-apx-cfcmov-intel.d        | 684 +++++++++++++++++
 gas/testsuite/gas/i386/x86-64-apx-cfcmov.d    | 685 ++++++++++++++++++
 gas/testsuite/gas/i386/x86-64-apx-cfcmov.s    | 680 +++++++++++++++++
 gas/testsuite/gas/i386/x86-64.exp             |   2 +
 opcodes/i386-dis-evex-prefix.h                |   4 +-
 opcodes/i386-dis.c                            |  52 +-
 opcodes/i386-opc.tbl                          |   4 +
 8 files changed, 2110 insertions(+), 5 deletions(-)
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-cfcmov-intel.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-cfcmov.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-apx-cfcmov.s
  

Comments

Jan Beulich June 17, 2024, 4:01 p.m. UTC | #1
On 17.06.2024 08:18, Cui, Lili wrote:
> --- a/opcodes/i386-opc.tbl
> +++ b/opcodes/i386-opc.tbl
> @@ -989,6 +989,10 @@ ud0, 0xfff, i186, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Un
>  cmov<cc>, 0x4<cc:opc>, CMOV&APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64 }
>  cmov<cc>, 0xf4<cc:opc>, CMOV, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
>  
> +cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4|NF, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64 }
> +cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F, Load|Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
> +cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4|NF, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Unspecified|BaseIndex }

Just on this one for starters (I'll get to the other parts later): NF
here permits use of {nf}, which is specifically not wanted. EVEX.NF has
a different purpose here, and hence the pseudo prefix, if used, needs
to be rejected.

The doc also doesn't mention any dependency on the CMOV CPUID bit (also
not for CMOVcc, btw, which thus wants fixing, unless of course the doc
is wrong).

Finally a remark on the spec itself, similarly affecting the 3-operand
form of CMOVcc: The spec uses Intel syntax. In Intel syntax present NDD
operand ordering is "ndd, reg, r/m". I consider this severely misleading,
and hence I'd like to ask that it be considered for operand order to
change (in gas we could retain present order for AT&T syntax, as _there_
it makes sense). The "reg" operand, after all, supplies only the fallback
value (i.e. when <cc> resolves to false). Naming the fallback before the
"main" source operand is, well, at best confusing.

Jan
  
Cui, Lili June 18, 2024, 9:24 a.m. UTC | #2
> On 17.06.2024 08:18, Cui, Lili wrote:
> > --- a/opcodes/i386-opc.tbl
> > +++ b/opcodes/i386-opc.tbl
> > @@ -989,6 +989,10 @@ ud0, 0xfff, i186,
> > Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Un
> > cmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
> > Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4, {
> > Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64,
> > Reg16|Reg32|Reg64 }  cmov<cc>, 0xf4<cc:opc>, CMOV,
> > Modrm|CheckOperandSize|No_bSuf|No_sSuf, {
> > Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
> >
> > +cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
> > +Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4|NF, {
> > +Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64,
> > +Reg16|Reg32|Reg64 } cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
> > +Load|Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4, {
> > +Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
> > +cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
> > +Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4|NF, {
> > +Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Unspecified|BaseIndex }
> 
> Just on this one for starters (I'll get to the other parts later): NF here permits
> use of {nf}, which is specifically not wanted. EVEX.NF has a different purpose
> here, and hence the pseudo prefix, if used, needs to be rejected.
> 

Added.

> The doc also doesn't mention any dependency on the CMOV CPUID bit (also
> not for CMOVcc, btw, which thus wants fixing, unless of course the doc is
> wrong).
> 

Agree. I will feedback this issue.

> Finally a remark on the spec itself, similarly affecting the 3-operand form of
> CMOVcc: The spec uses Intel syntax. In Intel syntax present NDD operand
> ordering is "ndd, reg, r/m". I consider this severely misleading, and hence I'd
> like to ask that it be considered for operand order to change (in gas we could
> retain present order for AT&T syntax, as _there_ it makes sense). The "reg"
> operand, after all, supplies only the fallback value (i.e. when <cc> resolves to
> false). Naming the fallback before the "main" source operand is, well, at best
> confusing.
> 

We need internal discussion.

Thanks,
Lili.
  
Jan Beulich June 18, 2024, 9:33 a.m. UTC | #3
On 18.06.2024 11:24, Cui, Lili wrote:
>> On 17.06.2024 08:18, Cui, Lili wrote:
>>> --- a/opcodes/i386-opc.tbl
>>> +++ b/opcodes/i386-opc.tbl
>>> @@ -989,6 +989,10 @@ ud0, 0xfff, i186,
>>> Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Un
>>> cmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
>>> Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4, {
>>> Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64,
>>> Reg16|Reg32|Reg64 }  cmov<cc>, 0xf4<cc:opc>, CMOV,
>>> Modrm|CheckOperandSize|No_bSuf|No_sSuf, {
>>> Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
>>>
>>> +cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
>>> +Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4|NF, {
>>> +Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64,
>>> +Reg16|Reg32|Reg64 } cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
>>> +Load|Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4, {
>>> +Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
>>> +cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
>>> +Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4|NF, {
>>> +Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Unspecified|BaseIndex }
>>
>> Just on this one for starters (I'll get to the other parts later): NF here permits
>> use of {nf}, which is specifically not wanted. EVEX.NF has a different purpose
>> here, and hence the pseudo prefix, if used, needs to be rejected.
> 
> Added.

To perhaps save a round trip on the eventual v2, would you mind clarifying
what you mean by "added"? The point of my remark was that I think NF here
needs dropping, with the setting of EVEX.NF in the resulting encoding
being driven by other means. Yet of course the overall intended effect
could also be achieved by keeping the attribute here, and adding checks
elsewhere (which is what I'd like to avoid).

Jan
  
Cui, Lili June 18, 2024, 10:56 a.m. UTC | #4
> -----Original Message-----
> From: Jan Beulich <jbeulich@suse.com>
> Sent: Tuesday, June 18, 2024 5:34 PM
> To: Cui, Lili <lili.cui@intel.com>
> Cc: hjl.tools@gmail.com; binutils@sourceware.org
> Subject: Re: [PATCH] Support APX CFCMOV
> 
> On 18.06.2024 11:24, Cui, Lili wrote:
> >> On 17.06.2024 08:18, Cui, Lili wrote:
> >>> --- a/opcodes/i386-opc.tbl
> >>> +++ b/opcodes/i386-opc.tbl
> >>> @@ -989,6 +989,10 @@ ud0, 0xfff, i186,
> >>> Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Un
> >>> cmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
> >>> Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4, {
> >>> Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64,
> >>> Reg16|Reg32|Reg64 }  cmov<cc>, 0xf4<cc:opc>, CMOV,
> >>> Modrm|CheckOperandSize|No_bSuf|No_sSuf, {
> >>> Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
> >>>
> >>> +cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
> >>> +Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4|NF, {
> >>> +Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64,
> >>> +Reg16|Reg32|Reg64 } cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
> >>> +Load|Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4, {
> >>> +Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
> >>> +cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
> >>> +Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4|NF, {
> >>> +Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Unspecified|BaseIndex }
> >>
> >> Just on this one for starters (I'll get to the other parts later): NF
> >> here permits use of {nf}, which is specifically not wanted. EVEX.NF
> >> has a different purpose here, and hence the pseudo prefix, if used, needs to
> be rejected.
> >
> > Added.
> 
> To perhaps save a round trip on the eventual v2, would you mind clarifying what
> you mean by "added"? The point of my remark was that I think NF here needs
> dropping, with the setting of EVEX.NF in the resulting encoding being driven by
> other means. Yet of course the overall intended effect could also be achieved by
> keeping the attribute here, and adding checks elsewhere (which is what I'd like to
> avoid).
> 

I added 3 invalid test cases for it, and changed the code in a way you didn't like. I thought it was a relatively minor change. I think the advantage of this approach is that the changes were relatively minor.

       /* Check NF support.  */
       specific_error = progress (unsupported_nf);
-      if (i.has_nf && !t->opcode_modifier.nf)
+      if (i.has_nf && (!t->opcode_modifier.nf || is_cpu (t, CpuCMOV)))
        continue;

Thanks,
Lili.
  
Jan Beulich June 18, 2024, 11:41 a.m. UTC | #5
On 18.06.2024 12:56, Cui, Lili wrote:
> 
> 
>> -----Original Message-----
>> From: Jan Beulich <jbeulich@suse.com>
>> Sent: Tuesday, June 18, 2024 5:34 PM
>> To: Cui, Lili <lili.cui@intel.com>
>> Cc: hjl.tools@gmail.com; binutils@sourceware.org
>> Subject: Re: [PATCH] Support APX CFCMOV
>>
>> On 18.06.2024 11:24, Cui, Lili wrote:
>>>> On 17.06.2024 08:18, Cui, Lili wrote:
>>>>> --- a/opcodes/i386-opc.tbl
>>>>> +++ b/opcodes/i386-opc.tbl
>>>>> @@ -989,6 +989,10 @@ ud0, 0xfff, i186,
>>>>> Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Un
>>>>> cmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
>>>>> Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4, {
>>>>> Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64,
>>>>> Reg16|Reg32|Reg64 }  cmov<cc>, 0xf4<cc:opc>, CMOV,
>>>>> Modrm|CheckOperandSize|No_bSuf|No_sSuf, {
>>>>> Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
>>>>>
>>>>> +cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
>>>>> +Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4|NF, {
>>>>> +Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64,
>>>>> +Reg16|Reg32|Reg64 } cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
>>>>> +Load|Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4, {
>>>>> +Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
>>>>> +cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
>>>>> +Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4|NF, {
>>>>> +Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Unspecified|BaseIndex }
>>>>
>>>> Just on this one for starters (I'll get to the other parts later): NF
>>>> here permits use of {nf}, which is specifically not wanted. EVEX.NF
>>>> has a different purpose here, and hence the pseudo prefix, if used, needs to
>> be rejected.
>>>
>>> Added.
>>
>> To perhaps save a round trip on the eventual v2, would you mind clarifying what
>> you mean by "added"? The point of my remark was that I think NF here needs
>> dropping, with the setting of EVEX.NF in the resulting encoding being driven by
>> other means. Yet of course the overall intended effect could also be achieved by
>> keeping the attribute here, and adding checks elsewhere (which is what I'd like to
>> avoid).
>>
> 
> I added 3 invalid test cases for it, and changed the code in a way you didn't like. I thought it was a relatively minor change. I think the advantage of this approach is that the changes were relatively minor.
> 
>        /* Check NF support.  */
>        specific_error = progress (unsupported_nf);
> -      if (i.has_nf && !t->opcode_modifier.nf)
> +      if (i.has_nf && (!t->opcode_modifier.nf || is_cpu (t, CpuCMOV)))
>         continue;

With the presence of the CMOV feature bit being under question anyway,
I find this particularly odd. I also don't think the alternative approach
that I suggested would be meaningfully more intrusive. However, in the
end it's not so much the tc-i386.c change I'm concerned about. It's
rather the NF attribute in the opcode table which I consider wrong to
have for these insns.

Jan
  
Cui, Lili June 19, 2024, 2:03 a.m. UTC | #6
> >> On 18.06.2024 11:24, Cui, Lili wrote:
> >>>> On 17.06.2024 08:18, Cui, Lili wrote:
> >>>>> --- a/opcodes/i386-opc.tbl
> >>>>> +++ b/opcodes/i386-opc.tbl
> >>>>> @@ -989,6 +989,10 @@ ud0, 0xfff, i186,
> >>>>> Modrm|CheckOperandSize|No_bSuf|No_sSuf,
> { Reg16|Reg32|Reg64|Un
> >>>>> cmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
> >>>>> Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4, {
> >>>>> Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64,
> >>>>> Reg16|Reg32|Reg64 }  cmov<cc>, 0xf4<cc:opc>, CMOV,
> >>>>> Modrm|CheckOperandSize|No_bSuf|No_sSuf, {
> >>>>> Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
> >>>>>
> >>>>> +cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
> >>>>>
> +Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4|NF, {
> >>>>> +Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64,
> >>>>> +Reg16|Reg32|Reg64 } cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
> >>>>> +Load|Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4, {
> >>>>> +Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
> >>>>> +cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
> >>>>> +Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4|NF, {
> >>>>> +Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Unspecified|BaseIndex }
> >>>>
> >>>> Just on this one for starters (I'll get to the other parts later):
> >>>> NF here permits use of {nf}, which is specifically not wanted.
> >>>> EVEX.NF has a different purpose here, and hence the pseudo prefix,
> >>>> if used, needs to
> >> be rejected.
> >>>
> >>> Added.
> >>
> >> To perhaps save a round trip on the eventual v2, would you mind
> >> clarifying what you mean by "added"? The point of my remark was that
> >> I think NF here needs dropping, with the setting of EVEX.NF in the
> >> resulting encoding being driven by other means. Yet of course the
> >> overall intended effect could also be achieved by keeping the
> >> attribute here, and adding checks elsewhere (which is what I'd like to
> avoid).
> >>
> >
> > I added 3 invalid test cases for it, and changed the code in a way you didn't
> like. I thought it was a relatively minor change. I think the advantage of this
> approach is that the changes were relatively minor.
> >
> >        /* Check NF support.  */
> >        specific_error = progress (unsupported_nf);
> > -      if (i.has_nf && !t->opcode_modifier.nf)
> > +      if (i.has_nf && (!t->opcode_modifier.nf || is_cpu (t,
> > + CpuCMOV)))
> >         continue;
> 
> With the presence of the CMOV feature bit being under question anyway, I find
> this particularly odd. I also don't think the alternative approach that I
> suggested would be meaningfully more intrusive.

Internal discussion has not started yet, but I personally think that we are used to putting r/m at the end because it is more in line with the actual coding order. Of course, your point of view is more humane.

> However, in the end it's not
> so much the tc-i386.c change I'm concerned about. It's rather the NF attribute
> in the opcode table which I consider wrong to have for these insns.
> 

I understand your concern, just like the NDD bit is reused, the spec gives an alias ZU, the NF reuse SPEC does not give an alias. I think it maybe because it is only used to distinguish instructions from the encoding and does not have much practical meaning. Of course, we can also add a new attribute for it in OperandConstraint. But I don't have any good ideas for the new attribute name. Do you have some suggestions?

I will take AL for the next two days, email responses will be slower.

Thanks,
Lili.
  
Jan Beulich June 19, 2024, 6:57 a.m. UTC | #7
On 19.06.2024 04:03, Cui, Lili wrote:
>>>> On 18.06.2024 11:24, Cui, Lili wrote:
>>>>>> On 17.06.2024 08:18, Cui, Lili wrote:
>>>>>>> --- a/opcodes/i386-opc.tbl
>>>>>>> +++ b/opcodes/i386-opc.tbl
>>>>>>> @@ -989,6 +989,10 @@ ud0, 0xfff, i186,
>>>>>>> Modrm|CheckOperandSize|No_bSuf|No_sSuf,
>> { Reg16|Reg32|Reg64|Un
>>>>>>> cmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
>>>>>>> Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4, {
>>>>>>> Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64,
>>>>>>> Reg16|Reg32|Reg64 }  cmov<cc>, 0xf4<cc:opc>, CMOV,
>>>>>>> Modrm|CheckOperandSize|No_bSuf|No_sSuf, {
>>>>>>> Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
>>>>>>>
>>>>>>> +cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
>>>>>>>
>> +Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4|NF, {
>>>>>>> +Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64,
>>>>>>> +Reg16|Reg32|Reg64 } cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
>>>>>>> +Load|Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4, {
>>>>>>> +Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
>>>>>>> +cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
>>>>>>> +Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4|NF, {
>>>>>>> +Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Unspecified|BaseIndex }
>>>>>>
>>>>>> Just on this one for starters (I'll get to the other parts later):
>>>>>> NF here permits use of {nf}, which is specifically not wanted.
>>>>>> EVEX.NF has a different purpose here, and hence the pseudo prefix,
>>>>>> if used, needs to
>>>> be rejected.
>>>>>
>>>>> Added.
>>>>
>>>> To perhaps save a round trip on the eventual v2, would you mind
>>>> clarifying what you mean by "added"? The point of my remark was that
>>>> I think NF here needs dropping, with the setting of EVEX.NF in the
>>>> resulting encoding being driven by other means. Yet of course the
>>>> overall intended effect could also be achieved by keeping the
>>>> attribute here, and adding checks elsewhere (which is what I'd like to
>> avoid).
>>>>
>>>
>>> I added 3 invalid test cases for it, and changed the code in a way you didn't
>> like. I thought it was a relatively minor change. I think the advantage of this
>> approach is that the changes were relatively minor.
>>>
>>>        /* Check NF support.  */
>>>        specific_error = progress (unsupported_nf);
>>> -      if (i.has_nf && !t->opcode_modifier.nf)
>>> +      if (i.has_nf && (!t->opcode_modifier.nf || is_cpu (t,
>>> + CpuCMOV)))
>>>         continue;
>>
>> With the presence of the CMOV feature bit being under question anyway, I find
>> this particularly odd. I also don't think the alternative approach that I
>> suggested would be meaningfully more intrusive.
> 
> Internal discussion has not started yet, but I personally think that we are used to putting r/m at the end because it is more in line with the actual coding order. Of course, your point of view is more humane.
> 
>> However, in the end it's not
>> so much the tc-i386.c change I'm concerned about. It's rather the NF attribute
>> in the opcode table which I consider wrong to have for these insns.
>>
> 
> I understand your concern, just like the NDD bit is reused, the spec gives an alias ZU, the NF reuse SPEC does not give an alias. I think it maybe because it is only used to distinguish instructions from the encoding and does not have much practical meaning. Of course, we can also add a new attribute for it in OperandConstraint. But I don't have any good ideas for the new attribute name. Do you have some suggestions?

While being an option, I don't think anything like that is needed. The
need to set EVEX.NF can be recognized in a way similar to whatever you
have done / would do in the code snippet still visible above. I.e.
special-case these two forms by checking some specific property of
theirs; if nothing else, their opcodes. Only if that check becomes too
complex / expensive, going the OperandConstraint route would likely be
the better route. Plus, of course, unless you're aware of future
additions to the ISA which similarly re-purpose EVEX.NF.

Jan
  
Cui, Lili June 19, 2024, 9:18 a.m. UTC | #8
> >>>>>>> --- a/opcodes/i386-opc.tbl
> >>>>>>> +++ b/opcodes/i386-opc.tbl
> >>>>>>> @@ -989,6 +989,10 @@ ud0, 0xfff, i186,
> >>>>>>> Modrm|CheckOperandSize|No_bSuf|No_sSuf,
> >> { Reg16|Reg32|Reg64|Un
> >>>>>>> cmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
> >>>>>>> Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4, {
> >>>>>>> Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64,
> >>>>>>> Reg16|Reg32|Reg64 }  cmov<cc>, 0xf4<cc:opc>, CMOV,
> >>>>>>> Modrm|CheckOperandSize|No_bSuf|No_sSuf, {
> >>>>>>> Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
> >>>>>>>
> >>>>>>> +cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
> >>>>>>>
> >> +Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4|NF, {
> >>>>>>> +Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64,
> >>>>>>> +Reg16|Reg32|Reg64 } cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
> >>>>>>> +Load|Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4, {
> >>>>>>> +Reg16|Reg32|Reg64|Unspecified|BaseIndex,
> Reg16|Reg32|Reg64 }
> >>>>>>> +cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
> >>>>>>> +Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4|NF, {
> >>>>>>> +Reg16|Reg32|Reg64,
> Reg16|Reg32|Reg64|Unspecified|BaseIndex }
> >>>>>>
> >>>>>> Just on this one for starters (I'll get to the other parts later):
> >>>>>> NF here permits use of {nf}, which is specifically not wanted.
> >>>>>> EVEX.NF has a different purpose here, and hence the pseudo
> >>>>>> prefix, if used, needs to
> >>>> be rejected.
> >>>>>
> >>>>> Added.
> >>>>
> >>>> To perhaps save a round trip on the eventual v2, would you mind
> >>>> clarifying what you mean by "added"? The point of my remark was
> >>>> that I think NF here needs dropping, with the setting of EVEX.NF in
> >>>> the resulting encoding being driven by other means. Yet of course
> >>>> the overall intended effect could also be achieved by keeping the
> >>>> attribute here, and adding checks elsewhere (which is what I'd like
> >>>> to
> >> avoid).
> >>>>
> >>>
> >>> I added 3 invalid test cases for it, and changed the code in a way
> >>> you didn't
> >> like. I thought it was a relatively minor change. I think the
> >> advantage of this approach is that the changes were relatively minor.
> >>>
> >>>        /* Check NF support.  */
> >>>        specific_error = progress (unsupported_nf);
> >>> -      if (i.has_nf && !t->opcode_modifier.nf)
> >>> +      if (i.has_nf && (!t->opcode_modifier.nf || is_cpu (t,
> >>> + CpuCMOV)))
> >>>         continue;
> >>
> >> With the presence of the CMOV feature bit being under question
> >> anyway, I find this particularly odd. I also don't think the
> >> alternative approach that I suggested would be meaningfully more
> intrusive.
> >
> > Internal discussion has not started yet, but I personally think that we are
> used to putting r/m at the end because it is more in line with the actual coding
> order. Of course, your point of view is more humane.
> >
> >> However, in the end it's not
> >> so much the tc-i386.c change I'm concerned about. It's rather the NF
> >> attribute in the opcode table which I consider wrong to have for these
> insns.
> >>
> >
> > I understand your concern, just like the NDD bit is reused, the spec gives an
> alias ZU, the NF reuse SPEC does not give an alias. I think it maybe because it is
> only used to distinguish instructions from the encoding and does not have
> much practical meaning. Of course, we can also add a new attribute for it in
> OperandConstraint. But I don't have any good ideas for the new attribute
> name. Do you have some suggestions?
> 
> While being an option, I don't think anything like that is needed. The need to
> set EVEX.NF can be recognized in a way similar to whatever you have done /
> would do in the code snippet still visible above. I.e.
> special-case these two forms by checking some specific property of theirs; if
> nothing else, their opcodes. Only if that check becomes too complex /
> expensive, going the OperandConstraint route would likely be the better route.
> Plus, of course, unless you're aware of future additions to the ISA which
> similarly re-purpose EVEX.NF.
> 

I think for these two insn templates, their opcodes are the same, and we can't distinguish them when both operands are regs (if we want to remove the attributes from the second one).

cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F, Load|Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4|NF, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Unspecified|BaseIndex }

Thanks.
Lili
  
Jan Beulich June 19, 2024, 10:25 a.m. UTC | #9
On 19.06.2024 11:18, Cui, Lili wrote:
>>>>>>>>> --- a/opcodes/i386-opc.tbl
>>>>>>>>> +++ b/opcodes/i386-opc.tbl
>>>>>>>>> @@ -989,6 +989,10 @@ ud0, 0xfff, i186,
>>>>>>>>> Modrm|CheckOperandSize|No_bSuf|No_sSuf,
>>>> { Reg16|Reg32|Reg64|Un
>>>>>>>>> cmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
>>>>>>>>> Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4, {
>>>>>>>>> Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64,
>>>>>>>>> Reg16|Reg32|Reg64 }  cmov<cc>, 0xf4<cc:opc>, CMOV,
>>>>>>>>> Modrm|CheckOperandSize|No_bSuf|No_sSuf, {
>>>>>>>>> Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
>>>>>>>>>
>>>>>>>>> +cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
>>>>>>>>>
>>>> +Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4|NF, {
>>>>>>>>> +Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64,
>>>>>>>>> +Reg16|Reg32|Reg64 } cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
>>>>>>>>> +Load|Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4, {
>>>>>>>>> +Reg16|Reg32|Reg64|Unspecified|BaseIndex,
>> Reg16|Reg32|Reg64 }
>>>>>>>>> +cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
>>>>>>>>> +Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4|NF, {
>>>>>>>>> +Reg16|Reg32|Reg64,
>> Reg16|Reg32|Reg64|Unspecified|BaseIndex }
>>>>>>>>
>>>>>>>> Just on this one for starters (I'll get to the other parts later):
>>>>>>>> NF here permits use of {nf}, which is specifically not wanted.
>>>>>>>> EVEX.NF has a different purpose here, and hence the pseudo
>>>>>>>> prefix, if used, needs to
>>>>>> be rejected.
>>>>>>>
>>>>>>> Added.
>>>>>>
>>>>>> To perhaps save a round trip on the eventual v2, would you mind
>>>>>> clarifying what you mean by "added"? The point of my remark was
>>>>>> that I think NF here needs dropping, with the setting of EVEX.NF in
>>>>>> the resulting encoding being driven by other means. Yet of course
>>>>>> the overall intended effect could also be achieved by keeping the
>>>>>> attribute here, and adding checks elsewhere (which is what I'd like
>>>>>> to
>>>> avoid).
>>>>>>
>>>>>
>>>>> I added 3 invalid test cases for it, and changed the code in a way
>>>>> you didn't
>>>> like. I thought it was a relatively minor change. I think the
>>>> advantage of this approach is that the changes were relatively minor.
>>>>>
>>>>>        /* Check NF support.  */
>>>>>        specific_error = progress (unsupported_nf);
>>>>> -      if (i.has_nf && !t->opcode_modifier.nf)
>>>>> +      if (i.has_nf && (!t->opcode_modifier.nf || is_cpu (t,
>>>>> + CpuCMOV)))
>>>>>         continue;
>>>>
>>>> With the presence of the CMOV feature bit being under question
>>>> anyway, I find this particularly odd. I also don't think the
>>>> alternative approach that I suggested would be meaningfully more
>> intrusive.
>>>
>>> Internal discussion has not started yet, but I personally think that we are
>> used to putting r/m at the end because it is more in line with the actual coding
>> order. Of course, your point of view is more humane.
>>>
>>>> However, in the end it's not
>>>> so much the tc-i386.c change I'm concerned about. It's rather the NF
>>>> attribute in the opcode table which I consider wrong to have for these
>> insns.
>>>>
>>>
>>> I understand your concern, just like the NDD bit is reused, the spec gives an
>> alias ZU, the NF reuse SPEC does not give an alias. I think it maybe because it is
>> only used to distinguish instructions from the encoding and does not have
>> much practical meaning. Of course, we can also add a new attribute for it in
>> OperandConstraint. But I don't have any good ideas for the new attribute
>> name. Do you have some suggestions?
>>
>> While being an option, I don't think anything like that is needed. The need to
>> set EVEX.NF can be recognized in a way similar to whatever you have done /
>> would do in the code snippet still visible above. I.e.
>> special-case these two forms by checking some specific property of theirs; if
>> nothing else, their opcodes. Only if that check becomes too complex /
>> expensive, going the OperandConstraint route would likely be the better route.
>> Plus, of course, unless you're aware of future additions to the ISA which
>> similarly re-purpose EVEX.NF.
>>
> 
> I think for these two insn templates, their opcodes are the same, and we can't distinguish them when both operands are regs (if we want to remove the attributes from the second one).
> 
> cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F, Load|Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
> cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4|NF, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Unspecified|BaseIndex }

These two can be told from one another by their operands (actual operands
don't matter here, it's what the templates permit that matters). But I can
see your point, especially when considering the other two templates as
well (the 3-operand CFCMOVcc and CMOVcc ones). There, except for the
mnemonics, we'd have nothing to tell them apart. And going by mnemonics is
prohibitive here, I think.

So yes, a new operand constraint it is then, perhaps EVexNF / EVEX_NF.

Jan
  
Jan Beulich June 20, 2024, 12:43 p.m. UTC | #10
On 17.06.2024 08:18, Cui, Lili wrote:
> --- /dev/null
> +++ b/gas/testsuite/gas/i386/x86-64-apx-cfcmov.s
> @@ -0,0 +1,680 @@
> +# Check 64bit EVEX-promoted CMOVcc instructions
> +
> +	.text
> +_start:
> +	cfcmovb	%dx,%ax

What about cmova or cmovae? Others look to not be covered either. Every
condition code mnemonic suffix should imo be tested at least once.

> +	cfcmovb.s	%dx,%ax
> +	cfcmovb	%dx,%ax,%r31w
> +	cfcmovb	%dx,291(%r8,%rax,4)
> +	cfcmovb	%ecx,%edx
> +	cfcmovb	%ecx,%edx,%r10d
> +	cfcmovb	%ecx,291(%r8,%rax,4)
> +	cfcmovb	%r31,%r15
> +	cfcmovb	%r31,%r15,%r11
> +	cfcmovb	%r31,291(%r8,%rax,4)
> +	cfcmovb	291(%r8,%rax,4),%dx
> +	cfcmovb	291(%r8,%rax,4),%dx,%ax
> +	cfcmovb	291(%r8,%rax,4),%ecx
> +	cfcmovb	291(%r8,%rax,4),%ecx,%edx
> +	cfcmovb	291(%r8,%rax,4),%r31
> +	cfcmovb	291(%r8,%rax,4),%r31,%r15
> +	cfcmovbe	%dx,%ax
> +	cfcmovbe	%dx,%ax,%r31w
> +	cfcmovbe	%dx,291(%r8,%rax,4)
> +	cfcmovbe	%ecx,%edx
> +	cfcmovbe	%ecx,%edx,%r10d
> +	cfcmovbe	%ecx,291(%r8,%rax,4)
> +	cfcmovbe	%r31,%r15
> +	cfcmovbe	%r31,%r15,%r11
> +	cfcmovbe	%r31,291(%r8,%rax,4)
> +	cfcmovbe	291(%r8,%rax,4),%dx
> +	cfcmovbe	291(%r8,%rax,4),%dx,%ax
> +	cfcmovbe	291(%r8,%rax,4),%ecx
> +	cfcmovbe	291(%r8,%rax,4),%ecx,%edx
> +	cfcmovbe	291(%r8,%rax,4),%r31
> +	cfcmovbe	291(%r8,%rax,4),%r31,%r15

If I'm not mistaken, operands are all the same between the condition code
groups. In such a case, did you consider using .irp to reduce source volume
(and redundancy) quite a bit?

> +	cmovb	%dx,%ax,%r31w
> +	cmovb	%ecx,%edx,%r10d

Don't we have cmov<cc> tests already? I don't mind having more, but in such
a case that's once again something to mention in the description.

> @@ -10565,7 +10567,17 @@ putop (instr_info *ins, const char *in_template, int sizeflag)
>  		}
>  	    }
>  	  else if (l == 1 && last[0] == 'C')
> -	    break;
> +	    {
> +	      if (ins->vex.nd && !ins->vex.nf)
> +		break;
> +	      else

Nit: This is again one of these odd "else". Without it code, beyond being
a tiny bit shorter, ...

> +		{
> +		  *ins->obufp++ = 'c';
> +		  *ins->obufp++ = 'f';
> +		  /* Skip printing {evex} */
> +		  evex_printed = true;
> +		}

... will also get away with less indentation (and no braces) here.

> @@ -14046,3 +14058,39 @@ JMPABS_Fixup (instr_info *ins, int bytemode, int sizeflag)
>      return OP_IMREG (ins, bytemode, sizeflag);
>    return OP_OFF64 (ins, bytemode, sizeflag);
>  }
> +
> +static bool
> +CFCMOV_Fixup_op0 (instr_info *ins, int bytemode, int sizeflag)
> +{
> +  /* EVEX.NF is used as a direction bit in the 2-operand case to reverse the
> +     source and destination operands. */
> +  if (!ins->vex.nd && ins->vex.nf)
> +    {
> +      bytemode = v_swap_mode;

Why is this? Iirc *_swap_mode are used when alternative encodings for the
same operand combinations exist, which wouldn't be recognizable. They also
look to only take effect in suffix-always mode, yet you don't add any
respective testing. (Which isn't to mean I think you should add such. But
if this line above was really meaningful, then such testing would be
needed, to show its effects and to ensure those effects won't go away
going forward.)

> +      return OP_E (ins, bytemode, sizeflag);
> +    }
> +  else
> +    {
> +      return OP_G (ins, bytemode, sizeflag);
> +    }
> +}
> +
> +static bool
> +CFCMOV_Fixup_op1 (instr_info *ins, int bytemode, int sizeflag)
> +{
> +  /* EVEX.NF is used as a direction bit in the 2-operand case to reverse the
> +     source and destination operands. */
> +  if (!ins->vex.nd && ins->vex.nf)
> +    {
> +      /* These bits have been consumed and should be cleared.  */
> +      ins->vex.nf = false;
> +      ins->vex.mask_register_specifier = 0;
> +      return OP_G (ins, bytemode, sizeflag);
> +    }
> +  else
> +    {
> +      ins->vex.nf = false;
> +      ins->vex.mask_register_specifier = 0;

It's certainly a little odd for this to be done identically in if and else.

> +      return OP_E (ins, bytemode, sizeflag);
> +    }
> +}

I wonder anyway whether we actually need two functions here. The mode put
in the table entries is only ever v_mode. By slightly abusing that, you
could use that parameter to indicate which operand it is, then passing
v_mode explicitly to OP_E() / OP_G(). We apparently have a precedent for
this already: NOP_Fixup() is quite similar in this regard. A few others
also don't really have a mode passed, but they're somewhat different in
nature.

Jan
  
Jan Beulich June 20, 2024, 12:57 p.m. UTC | #11
On 17.06.2024 08:18, Cui, Lili wrote:
> --- a/opcodes/i386-opc.tbl
> +++ b/opcodes/i386-opc.tbl
> @@ -989,6 +989,10 @@ ud0, 0xfff, i186, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Un
>  cmov<cc>, 0x4<cc:opc>, CMOV&APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64 }
>  cmov<cc>, 0xf4<cc:opc>, CMOV, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
>  
> +cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4|NF, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64 }
> +cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F, Load|Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }

Thinking of it, I don't remember seeing this Load attribute exercised anywhere
in the new testcase (or elsewhere in the testsuite).

Jan

> +cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4|NF, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Unspecified|BaseIndex }
> +
>  fcmovb, 0xda/0, i687, Modrm|NoSuf, { FloatReg, FloatAcc }
>  fcmovnae, 0xda/0, i687, Modrm|NoSuf, { FloatReg, FloatAcc }
>  fcmove, 0xda/1, i687, Modrm|NoSuf, { FloatReg, FloatAcc }
  
Cui, Lili June 24, 2024, 8:01 a.m. UTC | #12
> On 19.06.2024 11:18, Cui, Lili wrote:
> >>>>>>>>> --- a/opcodes/i386-opc.tbl
> >>>>>>>>> +++ b/opcodes/i386-opc.tbl
> >>>>>>>>> @@ -989,6 +989,10 @@ ud0, 0xfff, i186,
> >>>>>>>>> Modrm|CheckOperandSize|No_bSuf|No_sSuf,
> >>>> { Reg16|Reg32|Reg64|Un
> >>>>>>>>> cmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
> >>>>>>>>>
> Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4, {
> >>>>>>>>> Reg16|Reg32|Reg64|Unspecified|BaseIndex,
> Reg16|Reg32|Reg64,
> >>>>>>>>> Reg16|Reg32|Reg64 }  cmov<cc>, 0xf4<cc:opc>, CMOV,
> >>>>>>>>> Modrm|CheckOperandSize|No_bSuf|No_sSuf, {
> >>>>>>>>> Reg16|Reg32|Reg64|Unspecified|BaseIndex,
> Reg16|Reg32|Reg64 }
> >>>>>>>>>
> >>>>>>>>> +cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
> >>>>>>>>>
> >>>> +Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4|NF,
> {
> >>>>>>>>> +Reg16|Reg32|Reg64|Unspecified|BaseIndex,
> Reg16|Reg32|Reg64,
> >>>>>>>>> +Reg16|Reg32|Reg64 } cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
> >>>>>>>>> +Load|Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4, {
> >>>>>>>>> +Reg16|Reg32|Reg64|Unspecified|BaseIndex,
> >> Reg16|Reg32|Reg64 }
> >>>>>>>>> +cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
> >>>>>>>>> +Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4|NF, {
> >>>>>>>>> +Reg16|Reg32|Reg64,
> >> Reg16|Reg32|Reg64|Unspecified|BaseIndex }
> >>>>>>>>
> >>>>>>>> Just on this one for starters (I'll get to the other parts later):
> >>>>>>>> NF here permits use of {nf}, which is specifically not wanted.
> >>>>>>>> EVEX.NF has a different purpose here, and hence the pseudo
> >>>>>>>> prefix, if used, needs to
> >>>>>> be rejected.
> >>>>>>>
> >>>>>>> Added.
> >>>>>>
> >>>>>> To perhaps save a round trip on the eventual v2, would you mind
> >>>>>> clarifying what you mean by "added"? The point of my remark was
> >>>>>> that I think NF here needs dropping, with the setting of EVEX.NF
> >>>>>> in the resulting encoding being driven by other means. Yet of
> >>>>>> course the overall intended effect could also be achieved by
> >>>>>> keeping the attribute here, and adding checks elsewhere (which is
> >>>>>> what I'd like to
> >>>> avoid).
> >>>>>>
> >>>>>
> >>>>> I added 3 invalid test cases for it, and changed the code in a way
> >>>>> you didn't
> >>>> like. I thought it was a relatively minor change. I think the
> >>>> advantage of this approach is that the changes were relatively minor.
> >>>>>
> >>>>>        /* Check NF support.  */
> >>>>>        specific_error = progress (unsupported_nf);
> >>>>> -      if (i.has_nf && !t->opcode_modifier.nf)
> >>>>> +      if (i.has_nf && (!t->opcode_modifier.nf || is_cpu (t,
> >>>>> + CpuCMOV)))
> >>>>>         continue;
> >>>>
> >>>> With the presence of the CMOV feature bit being under question
> >>>> anyway, I find this particularly odd. I also don't think the
> >>>> alternative approach that I suggested would be meaningfully more
> >> intrusive.
> >>>
> >>> Internal discussion has not started yet, but I personally think that
> >>> we are
> >> used to putting r/m at the end because it is more in line with the
> >> actual coding order. Of course, your point of view is more humane.
> >>>
> >>>> However, in the end it's not
> >>>> so much the tc-i386.c change I'm concerned about. It's rather the
> >>>> NF attribute in the opcode table which I consider wrong to have for
> >>>> these
> >> insns.
> >>>>
> >>>
> >>> I understand your concern, just like the NDD bit is reused, the spec
> >>> gives an
> >> alias ZU, the NF reuse SPEC does not give an alias. I think it maybe
> >> because it is only used to distinguish instructions from the encoding
> >> and does not have much practical meaning. Of course, we can also add
> >> a new attribute for it in OperandConstraint. But I don't have any
> >> good ideas for the new attribute name. Do you have some suggestions?
> >>
> >> While being an option, I don't think anything like that is needed.
> >> The need to set EVEX.NF can be recognized in a way similar to
> >> whatever you have done / would do in the code snippet still visible above.
> I.e.
> >> special-case these two forms by checking some specific property of
> >> theirs; if nothing else, their opcodes. Only if that check becomes
> >> too complex / expensive, going the OperandConstraint route would likely
> be the better route.
> >> Plus, of course, unless you're aware of future additions to the ISA
> >> which similarly re-purpose EVEX.NF.
> >>
> >
> > I think for these two insn templates, their opcodes are the same, and we
> can't distinguish them when both operands are regs (if we want to remove the
> attributes from the second one).
> >
> > cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
> > Load|Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4, {
> > Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
> > cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
> > Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4|NF, {
> > Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Unspecified|BaseIndex }
> 
> These two can be told from one another by their operands (actual operands
> don't matter here, it's what the templates permit that matters). But I can see
> your point, especially when considering the other two templates as well (the
> 3-operand CFCMOVcc and CMOVcc ones). There, except for the mnemonics,
> we'd have nothing to tell them apart. And going by mnemonics is prohibitive
> here, I think.
> 
> So yes, a new operand constraint it is then, perhaps EVexNF / EVEX_NF.
> 

 Done, thanks.

Lili.
  
Cui, Lili June 24, 2024, 8:04 a.m. UTC | #13
> On 17.06.2024 08:18, Cui, Lili wrote:
> > --- /dev/null
> > +++ b/gas/testsuite/gas/i386/x86-64-apx-cfcmov.s
> > @@ -0,0 +1,680 @@
> > +# Check 64bit EVEX-promoted CMOVcc instructions
> > +
> > +	.text
> > +_start:
> > +	cfcmovb	%dx,%ax
> 
> What about cmova or cmovae? Others look to not be covered either. Every
> condition code mnemonic suffix should imo be tested at least once.

For the assembler, I used <cc> as recommended by spec, cmova = comvnbe/ cmovae = cmovnb
For the disassembler, I used the same format as jcc.

> 
> > +	cfcmovb.s	%dx,%ax
> > +	cfcmovb	%dx,%ax,%r31w
> > +	cfcmovb	%dx,291(%r8,%rax,4)
> > +	cfcmovb	%ecx,%edx
> > +	cfcmovb	%ecx,%edx,%r10d
> > +	cfcmovb	%ecx,291(%r8,%rax,4)
> > +	cfcmovb	%r31,%r15
> > +	cfcmovb	%r31,%r15,%r11
> > +	cfcmovb	%r31,291(%r8,%rax,4)
> > +	cfcmovb	291(%r8,%rax,4),%dx
> > +	cfcmovb	291(%r8,%rax,4),%dx,%ax
> > +	cfcmovb	291(%r8,%rax,4),%ecx
> > +	cfcmovb	291(%r8,%rax,4),%ecx,%edx
> > +	cfcmovb	291(%r8,%rax,4),%r31
> > +	cfcmovb	291(%r8,%rax,4),%r31,%r15
> > +	cfcmovbe	%dx,%ax
> > +	cfcmovbe	%dx,%ax,%r31w
> > +	cfcmovbe	%dx,291(%r8,%rax,4)
> > +	cfcmovbe	%ecx,%edx
> > +	cfcmovbe	%ecx,%edx,%r10d
> > +	cfcmovbe	%ecx,291(%r8,%rax,4)
> > +	cfcmovbe	%r31,%r15
> > +	cfcmovbe	%r31,%r15,%r11
> > +	cfcmovbe	%r31,291(%r8,%rax,4)
> > +	cfcmovbe	291(%r8,%rax,4),%dx
> > +	cfcmovbe	291(%r8,%rax,4),%dx,%ax
> > +	cfcmovbe	291(%r8,%rax,4),%ecx
> > +	cfcmovbe	291(%r8,%rax,4),%ecx,%edx
> > +	cfcmovbe	291(%r8,%rax,4),%r31
> > +	cfcmovbe	291(%r8,%rax,4),%r31,%r15
> 
> If I'm not mistaken, operands are all the same between the condition code
> groups. In such a case, did you consider using .irp to reduce source volume
> (and redundancy) quite a bit?
> 

Yes, good idea.

> > +	cmovb	%dx,%ax,%r31w
> > +	cmovb	%ecx,%edx,%r10d
> 
> Don't we have cmov<cc> tests already? I don't mind having more, but in such
> a case that's once again something to mention in the description.
> 

Ok, I'll add descriptions in the changelog.

> > @@ -10565,7 +10567,17 @@ putop (instr_info *ins, const char
> *in_template, int sizeflag)
> >  		}
> >  	    }
> >  	  else if (l == 1 && last[0] == 'C')
> > -	    break;
> > +	    {
> > +	      if (ins->vex.nd && !ins->vex.nf)
> > +		break;
> > +	      else
> 
> Nit: This is again one of these odd "else". Without it code, beyond being a tiny
> bit shorter, ...
> 
> > +		{
> > +		  *ins->obufp++ = 'c';
> > +		  *ins->obufp++ = 'f';
> > +		  /* Skip printing {evex} */
> > +		  evex_printed = true;
> > +		}
> 
> ... will also get away with less indentation (and no braces) here.
> 

Done.

> > @@ -14046,3 +14058,39 @@ JMPABS_Fixup (instr_info *ins, int bytemode,
> int sizeflag)
> >      return OP_IMREG (ins, bytemode, sizeflag);
> >    return OP_OFF64 (ins, bytemode, sizeflag);  }
> > +
> > +static bool
> > +CFCMOV_Fixup_op0 (instr_info *ins, int bytemode, int sizeflag) {
> > +  /* EVEX.NF is used as a direction bit in the 2-operand case to reverse the
> > +     source and destination operands. */
> > +  if (!ins->vex.nd && ins->vex.nf)
> > +    {
> > +      bytemode = v_swap_mode;
> 
> Why is this? Iirc *_swap_mode are used when alternative encodings for the
> same operand combinations exist, which wouldn't be recognizable. They also
> look to only take effect in suffix-always mode, yet you don't add any respective
> testing. (Which isn't to mean I think you should add such. But if this line above
> was really meaningful, then such testing would be needed, to show its effects
> and to ensure those effects won't go away going forward.)
> 

I enabled "-Msuffix" in x86-64-apx-cfcmov-intel.d, unfortunately, it wasn't obvious where I put it. I will add more tests and put it at the end of the tests.
 
[       ]*[a-f0-9]+:[   ]*62 f4 7d 0c 42 d0[    ]+cfcmovb.s ax,dx

> > +      return OP_E (ins, bytemode, sizeflag);
> > +    }
> > +  else
> > +    {
> > +      return OP_G (ins, bytemode, sizeflag);
> > +    }
> > +}
> > +
> > +static bool
> > +CFCMOV_Fixup_op1 (instr_info *ins, int bytemode, int sizeflag) {
> > +  /* EVEX.NF is used as a direction bit in the 2-operand case to reverse the
> > +     source and destination operands. */
> > +  if (!ins->vex.nd && ins->vex.nf)
> > +    {
> > +      /* These bits have been consumed and should be cleared.  */
> > +      ins->vex.nf = false;
> > +      ins->vex.mask_register_specifier = 0;
> > +      return OP_G (ins, bytemode, sizeflag);
> > +    }
> > +  else
> > +    {
> > +      ins->vex.nf = false;
> > +      ins->vex.mask_register_specifier = 0;
> 
> It's certainly a little odd for this to be done identically in if and else.
> 

Done.

> > +      return OP_E (ins, bytemode, sizeflag);
> > +    }
> > +}
> 
> I wonder anyway whether we actually need two functions here. The mode put
> in the table entries is only ever v_mode. By slightly abusing that, you could use
> that parameter to indicate which operand it is, then passing v_mode explicitly
> to OP_E() / OP_G(). We apparently have a precedent for this already:
> NOP_Fixup() is quite similar in this regard. A few others also don't really have
> a mode passed, but they're somewhat different in nature.
> 
It is a good example, changed.

Thanks,
Lili.
  
Cui, Lili June 24, 2024, 8:06 a.m. UTC | #14
> On 17.06.2024 08:18, Cui, Lili wrote:
> > --- a/opcodes/i386-opc.tbl
> > +++ b/opcodes/i386-opc.tbl
> > @@ -989,6 +989,10 @@ ud0, 0xfff, i186,
> > Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Un
> > cmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
> > Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4, {
> > Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64,
> > Reg16|Reg32|Reg64 }  cmov<cc>, 0xf4<cc:opc>, CMOV,
> > Modrm|CheckOperandSize|No_bSuf|No_sSuf, {
> > Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
> >
> > +cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
> > +Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4|NF, {
> > +Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64,
> > +Reg16|Reg32|Reg64 } cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F,
> > +Load|Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4, {
> > +Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
> 
> Thinking of it, I don't remember seeing this Load attribute exercised anywhere
> in the new testcase (or elsewhere in the testsuite).
> 

Added, thanks.
Lili.
  
Jan Beulich June 24, 2024, 8:19 a.m. UTC | #15
On 24.06.2024 10:04, Cui, Lili wrote:
>> On 17.06.2024 08:18, Cui, Lili wrote:
>>> --- /dev/null
>>> +++ b/gas/testsuite/gas/i386/x86-64-apx-cfcmov.s
>>> @@ -0,0 +1,680 @@
>>> +# Check 64bit EVEX-promoted CMOVcc instructions
>>> +
>>> +	.text
>>> +_start:
>>> +	cfcmovb	%dx,%ax
>>
>> What about cmova or cmovae? Others look to not be covered either. Every
>> condition code mnemonic suffix should imo be tested at least once.
> 
> For the assembler, I used <cc> as recommended by spec, cmova = comvnbe/ cmovae = cmovnb

Yet for the assembler we want to be sure we cover all forms (at
least once).

> For the disassembler, I used the same format as jcc.

Right, that's of course fine.

Jan
  
Cui, Lili June 24, 2024, 11:28 a.m. UTC | #16
> On 24.06.2024 10:04, Cui, Lili wrote:
> >> On 17.06.2024 08:18, Cui, Lili wrote:
> >>> --- /dev/null
> >>> +++ b/gas/testsuite/gas/i386/x86-64-apx-cfcmov.s
> >>> @@ -0,0 +1,680 @@
> >>> +# Check 64bit EVEX-promoted CMOVcc instructions
> >>> +
> >>> +	.text
> >>> +_start:
> >>> +	cfcmovb	%dx,%ax
> >>
> >> What about cmova or cmovae? Others look to not be covered either.
> >> Every condition code mnemonic suffix should imo be tested at least once.
> >
> > For the assembler, I used <cc> as recommended by spec, cmova =
> > comvnbe/ cmovae = cmovnb
> 
> Yet for the assembler we want to be sure we cover all forms (at least once).
> 

OK, currently we use .irp, which is more convenient to cover all formats.

Thanks,
Lili.
  
Cui, Lili June 26, 2024, 10:29 a.m. UTC | #17
> > Finally a remark on the spec itself, similarly affecting the 3-operand
> > form of
> > CMOVcc: The spec uses Intel syntax. In Intel syntax present NDD
> > operand ordering is "ndd, reg, r/m". I consider this severely
> > misleading, and hence I'd like to ask that it be considered for
> > operand order to change (in gas we could retain present order for AT&T
> syntax, as _there_ it makes sense). The "reg"
> > operand, after all, supplies only the fallback value (i.e. when <cc>
> > resolves to false). Naming the fallback before the "main" source
> > operand is, well, at best confusing.
> >
> 
> We need internal discussion.
> 

To be consistent with NDD, spec does not want to make special changes to the Intel format of CMOVcc. NDD always adds a reg before the first src of the legacy instruction, such as sub.

Thanks,
Lili.
  
Jan Beulich June 26, 2024, 10:43 a.m. UTC | #18
On 26.06.2024 12:29, Cui, Lili wrote:
>>> Finally a remark on the spec itself, similarly affecting the 3-operand
>>> form of
>>> CMOVcc: The spec uses Intel syntax. In Intel syntax present NDD
>>> operand ordering is "ndd, reg, r/m". I consider this severely
>>> misleading, and hence I'd like to ask that it be considered for
>>> operand order to change (in gas we could retain present order for AT&T
>> syntax, as _there_ it makes sense). The "reg"
>>> operand, after all, supplies only the fallback value (i.e. when <cc>
>>> resolves to false). Naming the fallback before the "main" source
>>> operand is, well, at best confusing.
>>
>> We need internal discussion.
> 
> To be consistent with NDD, spec does not want to make special changes to the Intel format of CMOVcc. NDD always adds a reg before the first src of the legacy instruction, such as sub.

A misunderstanding? The destination (i.e. ndd) is fine as is. It's the
other two operands which are in unhelpful order. And there are ample
insns with "ndd, r/m, reg" operand order already (which is what I'm
asking to switch to).

Jan
  
Cui, Lili June 26, 2024, 11:18 a.m. UTC | #19
> On 26.06.2024 12:29, Cui, Lili wrote:
> >>> Finally a remark on the spec itself, similarly affecting the
> >>> 3-operand form of
> >>> CMOVcc: The spec uses Intel syntax. In Intel syntax present NDD
> >>> operand ordering is "ndd, reg, r/m". I consider this severely
> >>> misleading, and hence I'd like to ask that it be considered for
> >>> operand order to change (in gas we could retain present order for
> >>> AT&T
> >> syntax, as _there_ it makes sense). The "reg"
> >>> operand, after all, supplies only the fallback value (i.e. when <cc>
> >>> resolves to false). Naming the fallback before the "main" source
> >>> operand is, well, at best confusing.
> >>
> >> We need internal discussion.
> >
> > To be consistent with NDD, spec does not want to make special changes to
> the Intel format of CMOVcc. NDD always adds a reg before the first src of the
> legacy instruction, such as sub.
> 
> A misunderstanding? The destination (i.e. ndd) is fine as is. It's the other two
> operands which are in unhelpful order. And there are ample insns with "ndd,
> r/m, reg" operand order already (which is what I'm asking to switch to).
> 

It means NDD just want to add a new reg before the legacy operands,  keeping the order of the other operands consistent with the legacy. 
For example:

Legacy :    sub r/m, reg                               CMOVcc reg, r/m
NDD     :    sub reg(new), r/m, reg             CMOVcc reg(new), reg, r/m

Lili.
  
Jan Beulich June 26, 2024, 11:52 a.m. UTC | #20
On 26.06.2024 13:18, Cui, Lili wrote:
>> On 26.06.2024 12:29, Cui, Lili wrote:
>>>>> Finally a remark on the spec itself, similarly affecting the
>>>>> 3-operand form of
>>>>> CMOVcc: The spec uses Intel syntax. In Intel syntax present NDD
>>>>> operand ordering is "ndd, reg, r/m". I consider this severely
>>>>> misleading, and hence I'd like to ask that it be considered for
>>>>> operand order to change (in gas we could retain present order for
>>>>> AT&T
>>>> syntax, as _there_ it makes sense). The "reg"
>>>>> operand, after all, supplies only the fallback value (i.e. when <cc>
>>>>> resolves to false). Naming the fallback before the "main" source
>>>>> operand is, well, at best confusing.
>>>>
>>>> We need internal discussion.
>>>
>>> To be consistent with NDD, spec does not want to make special changes to
>> the Intel format of CMOVcc. NDD always adds a reg before the first src of the
>> legacy instruction, such as sub.
>>
>> A misunderstanding? The destination (i.e. ndd) is fine as is. It's the other two
>> operands which are in unhelpful order. And there are ample insns with "ndd,
>> r/m, reg" operand order already (which is what I'm asking to switch to).
>>
> 
> It means NDD just want to add a new reg before the legacy operands,  keeping the order of the other operands consistent with the legacy. 
> For example:
> 
> Legacy :    sub r/m, reg                               CMOVcc reg, r/m
> NDD     :    sub reg(new), r/m, reg             CMOVcc reg(new), reg, r/m

Which for the SUB case makes complete sense: Destination first, minuend
second, subtrahend last. The semantic change here is that what was source
and destination is now split. The same isn't true to CMOVcc: There was no
dual-purpose operand before. Hence extending the pattern to this insn
doesn't quite work; it feels like insisting on a one-fits-all rule, when
that's really detrimental overall. But well, what do I do ... I'm almost
certain I will get this wrong sooner or later, when using this counter-
intuitive operand order.

Jan
  

Patch

diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 04460552d48..480f3607935 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -4427,7 +4427,9 @@  build_apx_evex_prefix (void)
     }
 
   /* Encode the NF bit.  */
-  if (i.has_nf)
+  /* For CFCMOV, when the insn template supports nf, it means that it requires
+     EVEX.NF to be 1.  */
+  if (i.has_nf || (is_cpu (&i.tm, CpuCMOV) && i.tm.opcode_modifier.nf))
     i.vex.bytes[3] |= 0x04;
 }
 
diff --git a/gas/testsuite/gas/i386/x86-64-apx-cfcmov-intel.d b/gas/testsuite/gas/i386/x86-64-apx-cfcmov-intel.d
new file mode 100644
index 00000000000..7c3f51912df
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-cfcmov-intel.d
@@ -0,0 +1,684 @@ 
+#as:
+#objdump: -dw -Mintel -Msuffix
+#name: x86_64 APX_F insns (Intel disassembly)
+#source: x86-64-apx-cfcmov.s
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+0+ <_start>:
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 42 c2[ 	]+cfcmovb ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 0c 42 d0[ 	]+cfcmovb.s ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 42 c2[ 	]+cfcmovb r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 42 94 80 23 01 00 00[ 	]+cfcmovb WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 42 d1[ 	]+cfcmovb edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 42 d1[ 	]+cfcmovb r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 42 8c 80 23 01 00 00[ 	]+cfcmovb DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 42 ff[ 	]+cfcmovb r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 42 ff[ 	]+cfcmovb r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 42 bc 80 23 01 00 00[ 	]+cfcmovb QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 42 94 80 23 01 00 00[ 	]+cfcmovb dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 42 94 80 23 01 00 00[ 	]+cfcmovb ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 42 8c 80 23 01 00 00[ 	]+cfcmovb ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 42 8c 80 23 01 00 00[ 	]+cfcmovb edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 42 bc 80 23 01 00 00[ 	]+cfcmovb r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 42 bc 80 23 01 00 00[ 	]+cfcmovb r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 46 c2[ 	]+cfcmovbe ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 46 c2[ 	]+cfcmovbe r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 46 94 80 23 01 00 00[ 	]+cfcmovbe WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 46 d1[ 	]+cfcmovbe edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 46 d1[ 	]+cfcmovbe r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 46 8c 80 23 01 00 00[ 	]+cfcmovbe DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 46 ff[ 	]+cfcmovbe r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 46 ff[ 	]+cfcmovbe r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 46 bc 80 23 01 00 00[ 	]+cfcmovbe QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 46 94 80 23 01 00 00[ 	]+cfcmovbe dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 46 94 80 23 01 00 00[ 	]+cfcmovbe ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 46 8c 80 23 01 00 00[ 	]+cfcmovbe ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 46 8c 80 23 01 00 00[ 	]+cfcmovbe edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 46 bc 80 23 01 00 00[ 	]+cfcmovbe r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 46 bc 80 23 01 00 00[ 	]+cfcmovbe r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 4c c2[ 	]+cfcmovl ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 4c c2[ 	]+cfcmovl r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 4c 94 80 23 01 00 00[ 	]+cfcmovl WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 4c d1[ 	]+cfcmovl edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 4c d1[ 	]+cfcmovl r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 4c 8c 80 23 01 00 00[ 	]+cfcmovl DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 4c ff[ 	]+cfcmovl r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 4c ff[ 	]+cfcmovl r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 4c bc 80 23 01 00 00[ 	]+cfcmovl QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 4c 94 80 23 01 00 00[ 	]+cfcmovl dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 4c 94 80 23 01 00 00[ 	]+cfcmovl ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 4c 8c 80 23 01 00 00[ 	]+cfcmovl ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 4c 8c 80 23 01 00 00[ 	]+cfcmovl edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 4c bc 80 23 01 00 00[ 	]+cfcmovl r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 4c bc 80 23 01 00 00[ 	]+cfcmovl r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 4e c2[ 	]+cfcmovle ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 4e c2[ 	]+cfcmovle r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 4e 94 80 23 01 00 00[ 	]+cfcmovle WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 4e d1[ 	]+cfcmovle edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 4e d1[ 	]+cfcmovle r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 4e 8c 80 23 01 00 00[ 	]+cfcmovle DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 4e ff[ 	]+cfcmovle r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 4e ff[ 	]+cfcmovle r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 4e bc 80 23 01 00 00[ 	]+cfcmovle QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 4e 94 80 23 01 00 00[ 	]+cfcmovle dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 4e 94 80 23 01 00 00[ 	]+cfcmovle ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 4e 8c 80 23 01 00 00[ 	]+cfcmovle ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 4e 8c 80 23 01 00 00[ 	]+cfcmovle edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 4e bc 80 23 01 00 00[ 	]+cfcmovle r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 4e bc 80 23 01 00 00[ 	]+cfcmovle r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 43 c2[ 	]+cfcmovae ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 43 c2[ 	]+cfcmovae r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 43 94 80 23 01 00 00[ 	]+cfcmovae WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 43 d1[ 	]+cfcmovae edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 43 d1[ 	]+cfcmovae r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 43 8c 80 23 01 00 00[ 	]+cfcmovae DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 43 ff[ 	]+cfcmovae r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 43 ff[ 	]+cfcmovae r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 43 bc 80 23 01 00 00[ 	]+cfcmovae QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 43 94 80 23 01 00 00[ 	]+cfcmovae dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 43 94 80 23 01 00 00[ 	]+cfcmovae ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 43 8c 80 23 01 00 00[ 	]+cfcmovae ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 43 8c 80 23 01 00 00[ 	]+cfcmovae edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 43 bc 80 23 01 00 00[ 	]+cfcmovae r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 43 bc 80 23 01 00 00[ 	]+cfcmovae r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 47 c2[ 	]+cfcmova ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 47 c2[ 	]+cfcmova r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 47 94 80 23 01 00 00[ 	]+cfcmova WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 47 d1[ 	]+cfcmova edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 47 d1[ 	]+cfcmova r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 47 8c 80 23 01 00 00[ 	]+cfcmova DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 47 ff[ 	]+cfcmova r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 47 ff[ 	]+cfcmova r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 47 bc 80 23 01 00 00[ 	]+cfcmova QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 47 94 80 23 01 00 00[ 	]+cfcmova dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 47 94 80 23 01 00 00[ 	]+cfcmova ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 47 8c 80 23 01 00 00[ 	]+cfcmova ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 47 8c 80 23 01 00 00[ 	]+cfcmova edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 47 bc 80 23 01 00 00[ 	]+cfcmova r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 47 bc 80 23 01 00 00[ 	]+cfcmova r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 4d c2[ 	]+cfcmovge ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 4d c2[ 	]+cfcmovge r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 4d 94 80 23 01 00 00[ 	]+cfcmovge WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 4d d1[ 	]+cfcmovge edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 4d d1[ 	]+cfcmovge r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 4d 8c 80 23 01 00 00[ 	]+cfcmovge DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 4d ff[ 	]+cfcmovge r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 4d ff[ 	]+cfcmovge r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 4d bc 80 23 01 00 00[ 	]+cfcmovge QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 4d 94 80 23 01 00 00[ 	]+cfcmovge dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 4d 94 80 23 01 00 00[ 	]+cfcmovge ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 4d 8c 80 23 01 00 00[ 	]+cfcmovge ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 4d 8c 80 23 01 00 00[ 	]+cfcmovge edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 4d bc 80 23 01 00 00[ 	]+cfcmovge r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 4d bc 80 23 01 00 00[ 	]+cfcmovge r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 4f c2[ 	]+cfcmovg ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 4f c2[ 	]+cfcmovg r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 4f 94 80 23 01 00 00[ 	]+cfcmovg WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 4f d1[ 	]+cfcmovg edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 4f d1[ 	]+cfcmovg r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 4f 8c 80 23 01 00 00[ 	]+cfcmovg DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 4f ff[ 	]+cfcmovg r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 4f ff[ 	]+cfcmovg r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 4f bc 80 23 01 00 00[ 	]+cfcmovg QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 4f 94 80 23 01 00 00[ 	]+cfcmovg dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 4f 94 80 23 01 00 00[ 	]+cfcmovg ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 4f 8c 80 23 01 00 00[ 	]+cfcmovg ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 4f 8c 80 23 01 00 00[ 	]+cfcmovg edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 4f bc 80 23 01 00 00[ 	]+cfcmovg r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 4f bc 80 23 01 00 00[ 	]+cfcmovg r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 41 c2[ 	]+cfcmovno ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 41 c2[ 	]+cfcmovno r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 41 94 80 23 01 00 00[ 	]+cfcmovno WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 41 d1[ 	]+cfcmovno edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 41 d1[ 	]+cfcmovno r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 41 8c 80 23 01 00 00[ 	]+cfcmovno DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 41 ff[ 	]+cfcmovno r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 41 ff[ 	]+cfcmovno r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 41 bc 80 23 01 00 00[ 	]+cfcmovno QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 41 94 80 23 01 00 00[ 	]+cfcmovno dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 41 94 80 23 01 00 00[ 	]+cfcmovno ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 41 8c 80 23 01 00 00[ 	]+cfcmovno ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 41 8c 80 23 01 00 00[ 	]+cfcmovno edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 41 bc 80 23 01 00 00[ 	]+cfcmovno r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 41 bc 80 23 01 00 00[ 	]+cfcmovno r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 4b c2[ 	]+cfcmovnp ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 4b c2[ 	]+cfcmovnp r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 4b 94 80 23 01 00 00[ 	]+cfcmovnp WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 4b d1[ 	]+cfcmovnp edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 4b d1[ 	]+cfcmovnp r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 4b 8c 80 23 01 00 00[ 	]+cfcmovnp DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 4b ff[ 	]+cfcmovnp r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 4b ff[ 	]+cfcmovnp r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 4b bc 80 23 01 00 00[ 	]+cfcmovnp QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 4b 94 80 23 01 00 00[ 	]+cfcmovnp dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 4b 94 80 23 01 00 00[ 	]+cfcmovnp ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 4b 8c 80 23 01 00 00[ 	]+cfcmovnp ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 4b 8c 80 23 01 00 00[ 	]+cfcmovnp edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 4b bc 80 23 01 00 00[ 	]+cfcmovnp r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 4b bc 80 23 01 00 00[ 	]+cfcmovnp r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 49 c2[ 	]+cfcmovns ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 49 c2[ 	]+cfcmovns r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 49 94 80 23 01 00 00[ 	]+cfcmovns WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 49 d1[ 	]+cfcmovns edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 49 d1[ 	]+cfcmovns r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 49 8c 80 23 01 00 00[ 	]+cfcmovns DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 49 ff[ 	]+cfcmovns r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 49 ff[ 	]+cfcmovns r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 49 bc 80 23 01 00 00[ 	]+cfcmovns QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 49 94 80 23 01 00 00[ 	]+cfcmovns dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 49 94 80 23 01 00 00[ 	]+cfcmovns ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 49 8c 80 23 01 00 00[ 	]+cfcmovns ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 49 8c 80 23 01 00 00[ 	]+cfcmovns edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 49 bc 80 23 01 00 00[ 	]+cfcmovns r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 49 bc 80 23 01 00 00[ 	]+cfcmovns r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 45 c2[ 	]+cfcmovne ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 45 c2[ 	]+cfcmovne r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 45 94 80 23 01 00 00[ 	]+cfcmovne WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 45 d1[ 	]+cfcmovne edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 45 d1[ 	]+cfcmovne r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 45 8c 80 23 01 00 00[ 	]+cfcmovne DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 45 ff[ 	]+cfcmovne r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 45 ff[ 	]+cfcmovne r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 45 bc 80 23 01 00 00[ 	]+cfcmovne QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 45 94 80 23 01 00 00[ 	]+cfcmovne dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 45 94 80 23 01 00 00[ 	]+cfcmovne ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 45 8c 80 23 01 00 00[ 	]+cfcmovne ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 45 8c 80 23 01 00 00[ 	]+cfcmovne edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 45 bc 80 23 01 00 00[ 	]+cfcmovne r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 45 bc 80 23 01 00 00[ 	]+cfcmovne r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 40 c2[ 	]+cfcmovo ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 40 c2[ 	]+cfcmovo r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 40 94 80 23 01 00 00[ 	]+cfcmovo WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 40 d1[ 	]+cfcmovo edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 40 d1[ 	]+cfcmovo r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 40 8c 80 23 01 00 00[ 	]+cfcmovo DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 40 ff[ 	]+cfcmovo r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 40 ff[ 	]+cfcmovo r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 40 bc 80 23 01 00 00[ 	]+cfcmovo QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 40 94 80 23 01 00 00[ 	]+cfcmovo dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 40 94 80 23 01 00 00[ 	]+cfcmovo ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 40 8c 80 23 01 00 00[ 	]+cfcmovo ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 40 8c 80 23 01 00 00[ 	]+cfcmovo edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 40 bc 80 23 01 00 00[ 	]+cfcmovo r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 40 bc 80 23 01 00 00[ 	]+cfcmovo r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 4a c2[ 	]+cfcmovp ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 4a c2[ 	]+cfcmovp r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 4a 94 80 23 01 00 00[ 	]+cfcmovp WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 4a d1[ 	]+cfcmovp edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 4a d1[ 	]+cfcmovp r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 4a 8c 80 23 01 00 00[ 	]+cfcmovp DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 4a ff[ 	]+cfcmovp r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 4a ff[ 	]+cfcmovp r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 4a bc 80 23 01 00 00[ 	]+cfcmovp QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 4a 94 80 23 01 00 00[ 	]+cfcmovp dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 4a 94 80 23 01 00 00[ 	]+cfcmovp ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 4a 8c 80 23 01 00 00[ 	]+cfcmovp ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 4a 8c 80 23 01 00 00[ 	]+cfcmovp edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 4a bc 80 23 01 00 00[ 	]+cfcmovp r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 4a bc 80 23 01 00 00[ 	]+cfcmovp r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 48 c2[ 	]+cfcmovs ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 48 c2[ 	]+cfcmovs r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 48 94 80 23 01 00 00[ 	]+cfcmovs WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 48 d1[ 	]+cfcmovs edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 48 d1[ 	]+cfcmovs r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 48 8c 80 23 01 00 00[ 	]+cfcmovs DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 48 ff[ 	]+cfcmovs r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 48 ff[ 	]+cfcmovs r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 48 bc 80 23 01 00 00[ 	]+cfcmovs QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 48 94 80 23 01 00 00[ 	]+cfcmovs dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 48 94 80 23 01 00 00[ 	]+cfcmovs ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 48 8c 80 23 01 00 00[ 	]+cfcmovs ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 48 8c 80 23 01 00 00[ 	]+cfcmovs edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 48 bc 80 23 01 00 00[ 	]+cfcmovs r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 48 bc 80 23 01 00 00[ 	]+cfcmovs r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 44 c2[ 	]+cfcmove ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 44 c2[ 	]+cfcmove r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 44 94 80 23 01 00 00[ 	]+cfcmove WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 44 d1[ 	]+cfcmove edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 44 d1[ 	]+cfcmove r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 44 8c 80 23 01 00 00[ 	]+cfcmove DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 44 ff[ 	]+cfcmove r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 44 ff[ 	]+cfcmove r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 44 bc 80 23 01 00 00[ 	]+cfcmove QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 44 94 80 23 01 00 00[ 	]+cfcmove dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 44 94 80 23 01 00 00[ 	]+cfcmove ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 44 8c 80 23 01 00 00[ 	]+cfcmove ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 44 8c 80 23 01 00 00[ 	]+cfcmove edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 44 bc 80 23 01 00 00[ 	]+cfcmove r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 44 bc 80 23 01 00 00[ 	]+cfcmove r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 42 c2[ 	]+cmovb  r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 42 d1[ 	]+cmovb  r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 42 ff[ 	]+cmovb  r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 42 94 80 23 01 00 00[ 	]+cmovb  ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 42 8c 80 23 01 00 00[ 	]+cmovb  edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 42 bc 80 23 01 00 00[ 	]+cmovb  r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 46 c2[ 	]+cmovbe r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 46 d1[ 	]+cmovbe r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 46 ff[ 	]+cmovbe r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 46 94 80 23 01 00 00[ 	]+cmovbe ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 46 8c 80 23 01 00 00[ 	]+cmovbe edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 46 bc 80 23 01 00 00[ 	]+cmovbe r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 4c c2[ 	]+cmovl  r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 4c d1[ 	]+cmovl  r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 4c ff[ 	]+cmovl  r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 4c 94 80 23 01 00 00[ 	]+cmovl  ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 4c 8c 80 23 01 00 00[ 	]+cmovl  edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 4c bc 80 23 01 00 00[ 	]+cmovl  r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 4e c2[ 	]+cmovle r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 4e d1[ 	]+cmovle r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 4e ff[ 	]+cmovle r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 4e 94 80 23 01 00 00[ 	]+cmovle ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 4e 8c 80 23 01 00 00[ 	]+cmovle edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 4e bc 80 23 01 00 00[ 	]+cmovle r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 43 c2[ 	]+cmovae r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 43 d1[ 	]+cmovae r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 43 ff[ 	]+cmovae r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 43 94 80 23 01 00 00[ 	]+cmovae ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 43 8c 80 23 01 00 00[ 	]+cmovae edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 43 bc 80 23 01 00 00[ 	]+cmovae r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 47 c2[ 	]+cmova  r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 47 d1[ 	]+cmova  r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 47 ff[ 	]+cmova  r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 47 94 80 23 01 00 00[ 	]+cmova  ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 47 8c 80 23 01 00 00[ 	]+cmova  edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 47 bc 80 23 01 00 00[ 	]+cmova  r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 4d c2[ 	]+cmovge r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 4d d1[ 	]+cmovge r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 4d ff[ 	]+cmovge r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 4d 94 80 23 01 00 00[ 	]+cmovge ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 4d 8c 80 23 01 00 00[ 	]+cmovge edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 4d bc 80 23 01 00 00[ 	]+cmovge r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 4f c2[ 	]+cmovg  r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 4f d1[ 	]+cmovg  r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 4f ff[ 	]+cmovg  r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 4f 94 80 23 01 00 00[ 	]+cmovg  ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 4f 8c 80 23 01 00 00[ 	]+cmovg  edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 4f bc 80 23 01 00 00[ 	]+cmovg  r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 41 c2[ 	]+cmovno r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 41 d1[ 	]+cmovno r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 41 ff[ 	]+cmovno r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 41 94 80 23 01 00 00[ 	]+cmovno ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 41 8c 80 23 01 00 00[ 	]+cmovno edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 41 bc 80 23 01 00 00[ 	]+cmovno r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 4b c2[ 	]+cmovnp r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 4b d1[ 	]+cmovnp r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 4b ff[ 	]+cmovnp r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 4b 94 80 23 01 00 00[ 	]+cmovnp ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 4b 8c 80 23 01 00 00[ 	]+cmovnp edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 4b bc 80 23 01 00 00[ 	]+cmovnp r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 49 c2[ 	]+cmovns r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 49 d1[ 	]+cmovns r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 49 ff[ 	]+cmovns r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 49 94 80 23 01 00 00[ 	]+cmovns ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 49 8c 80 23 01 00 00[ 	]+cmovns edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 49 bc 80 23 01 00 00[ 	]+cmovns r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 45 c2[ 	]+cmovne r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 45 d1[ 	]+cmovne r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 45 ff[ 	]+cmovne r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 45 94 80 23 01 00 00[ 	]+cmovne ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 45 8c 80 23 01 00 00[ 	]+cmovne edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 45 bc 80 23 01 00 00[ 	]+cmovne r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 40 c2[ 	]+cmovo  r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 40 d1[ 	]+cmovo  r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 40 ff[ 	]+cmovo  r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 40 94 80 23 01 00 00[ 	]+cmovo  ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 40 8c 80 23 01 00 00[ 	]+cmovo  edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 40 bc 80 23 01 00 00[ 	]+cmovo  r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 4a c2[ 	]+cmovp  r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 4a d1[ 	]+cmovp  r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 4a ff[ 	]+cmovp  r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 4a 94 80 23 01 00 00[ 	]+cmovp  ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 4a 8c 80 23 01 00 00[ 	]+cmovp  edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 4a bc 80 23 01 00 00[ 	]+cmovp  r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 48 c2[ 	]+cmovs  r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 48 d1[ 	]+cmovs  r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 48 ff[ 	]+cmovs  r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 48 94 80 23 01 00 00[ 	]+cmovs  ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 48 8c 80 23 01 00 00[ 	]+cmovs  edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 48 bc 80 23 01 00 00[ 	]+cmovs  r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 44 c2[ 	]+cmove  r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 44 d1[ 	]+cmove  r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 44 ff[ 	]+cmove  r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 44 94 80 23 01 00 00[ 	]+cmove  ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 44 8c 80 23 01 00 00[ 	]+cmove  edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 44 bc 80 23 01 00 00[ 	]+cmove  r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 42 c2[ 	]+cfcmovb ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 0c 42 d0[ 	]+cfcmovb.s ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 42 c2[ 	]+cfcmovb r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 42 94 80 23 01 00 00[ 	]+cfcmovb WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 42 d1[ 	]+cfcmovb edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 42 d1[ 	]+cfcmovb r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 42 8c 80 23 01 00 00[ 	]+cfcmovb DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 42 ff[ 	]+cfcmovb r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 42 ff[ 	]+cfcmovb r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 42 bc 80 23 01 00 00[ 	]+cfcmovb QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 42 94 80 23 01 00 00[ 	]+cfcmovb dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 42 94 80 23 01 00 00[ 	]+cfcmovb ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 42 8c 80 23 01 00 00[ 	]+cfcmovb ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 42 8c 80 23 01 00 00[ 	]+cfcmovb edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 42 bc 80 23 01 00 00[ 	]+cfcmovb r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 42 bc 80 23 01 00 00[ 	]+cfcmovb r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 46 c2[ 	]+cfcmovbe ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 46 c2[ 	]+cfcmovbe r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 46 94 80 23 01 00 00[ 	]+cfcmovbe WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 46 d1[ 	]+cfcmovbe edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 46 d1[ 	]+cfcmovbe r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 46 8c 80 23 01 00 00[ 	]+cfcmovbe DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 46 ff[ 	]+cfcmovbe r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 46 ff[ 	]+cfcmovbe r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 46 bc 80 23 01 00 00[ 	]+cfcmovbe QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 46 94 80 23 01 00 00[ 	]+cfcmovbe dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 46 94 80 23 01 00 00[ 	]+cfcmovbe ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 46 8c 80 23 01 00 00[ 	]+cfcmovbe ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 46 8c 80 23 01 00 00[ 	]+cfcmovbe edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 46 bc 80 23 01 00 00[ 	]+cfcmovbe r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 46 bc 80 23 01 00 00[ 	]+cfcmovbe r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 4c c2[ 	]+cfcmovl ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 4c c2[ 	]+cfcmovl r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 4c 94 80 23 01 00 00[ 	]+cfcmovl WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 4c d1[ 	]+cfcmovl edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 4c d1[ 	]+cfcmovl r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 4c 8c 80 23 01 00 00[ 	]+cfcmovl DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 4c ff[ 	]+cfcmovl r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 4c ff[ 	]+cfcmovl r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 4c bc 80 23 01 00 00[ 	]+cfcmovl QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 4c 94 80 23 01 00 00[ 	]+cfcmovl dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 4c 94 80 23 01 00 00[ 	]+cfcmovl ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 4c 8c 80 23 01 00 00[ 	]+cfcmovl ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 4c 8c 80 23 01 00 00[ 	]+cfcmovl edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 4c bc 80 23 01 00 00[ 	]+cfcmovl r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 4c bc 80 23 01 00 00[ 	]+cfcmovl r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 4e c2[ 	]+cfcmovle ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 4e c2[ 	]+cfcmovle r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 4e 94 80 23 01 00 00[ 	]+cfcmovle WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 4e d1[ 	]+cfcmovle edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 4e d1[ 	]+cfcmovle r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 4e 8c 80 23 01 00 00[ 	]+cfcmovle DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 4e ff[ 	]+cfcmovle r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 4e ff[ 	]+cfcmovle r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 4e bc 80 23 01 00 00[ 	]+cfcmovle QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 4e 94 80 23 01 00 00[ 	]+cfcmovle dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 4e 94 80 23 01 00 00[ 	]+cfcmovle ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 4e 8c 80 23 01 00 00[ 	]+cfcmovle ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 4e 8c 80 23 01 00 00[ 	]+cfcmovle edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 4e bc 80 23 01 00 00[ 	]+cfcmovle r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 4e bc 80 23 01 00 00[ 	]+cfcmovle r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 43 c2[ 	]+cfcmovae ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 43 c2[ 	]+cfcmovae r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 43 94 80 23 01 00 00[ 	]+cfcmovae WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 43 d1[ 	]+cfcmovae edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 43 d1[ 	]+cfcmovae r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 43 8c 80 23 01 00 00[ 	]+cfcmovae DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 43 ff[ 	]+cfcmovae r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 43 ff[ 	]+cfcmovae r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 43 bc 80 23 01 00 00[ 	]+cfcmovae QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 43 94 80 23 01 00 00[ 	]+cfcmovae dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 43 94 80 23 01 00 00[ 	]+cfcmovae ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 43 8c 80 23 01 00 00[ 	]+cfcmovae ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 43 8c 80 23 01 00 00[ 	]+cfcmovae edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 43 bc 80 23 01 00 00[ 	]+cfcmovae r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 43 bc 80 23 01 00 00[ 	]+cfcmovae r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 47 c2[ 	]+cfcmova ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 47 c2[ 	]+cfcmova r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 47 94 80 23 01 00 00[ 	]+cfcmova WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 47 d1[ 	]+cfcmova edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 47 d1[ 	]+cfcmova r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 47 8c 80 23 01 00 00[ 	]+cfcmova DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 47 ff[ 	]+cfcmova r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 47 ff[ 	]+cfcmova r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 47 bc 80 23 01 00 00[ 	]+cfcmova QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 47 94 80 23 01 00 00[ 	]+cfcmova dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 47 94 80 23 01 00 00[ 	]+cfcmova ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 47 8c 80 23 01 00 00[ 	]+cfcmova ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 47 8c 80 23 01 00 00[ 	]+cfcmova edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 47 bc 80 23 01 00 00[ 	]+cfcmova r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 47 bc 80 23 01 00 00[ 	]+cfcmova r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 4d c2[ 	]+cfcmovge ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 4d c2[ 	]+cfcmovge r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 4d 94 80 23 01 00 00[ 	]+cfcmovge WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 4d d1[ 	]+cfcmovge edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 4d d1[ 	]+cfcmovge r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 4d 8c 80 23 01 00 00[ 	]+cfcmovge DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 4d ff[ 	]+cfcmovge r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 4d ff[ 	]+cfcmovge r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 4d bc 80 23 01 00 00[ 	]+cfcmovge QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 4d 94 80 23 01 00 00[ 	]+cfcmovge dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 4d 94 80 23 01 00 00[ 	]+cfcmovge ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 4d 8c 80 23 01 00 00[ 	]+cfcmovge ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 4d 8c 80 23 01 00 00[ 	]+cfcmovge edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 4d bc 80 23 01 00 00[ 	]+cfcmovge r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 4d bc 80 23 01 00 00[ 	]+cfcmovge r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 4f c2[ 	]+cfcmovg ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 4f c2[ 	]+cfcmovg r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 4f 94 80 23 01 00 00[ 	]+cfcmovg WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 4f d1[ 	]+cfcmovg edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 4f d1[ 	]+cfcmovg r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 4f 8c 80 23 01 00 00[ 	]+cfcmovg DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 4f ff[ 	]+cfcmovg r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 4f ff[ 	]+cfcmovg r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 4f bc 80 23 01 00 00[ 	]+cfcmovg QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 4f 94 80 23 01 00 00[ 	]+cfcmovg dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 4f 94 80 23 01 00 00[ 	]+cfcmovg ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 4f 8c 80 23 01 00 00[ 	]+cfcmovg ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 4f 8c 80 23 01 00 00[ 	]+cfcmovg edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 4f bc 80 23 01 00 00[ 	]+cfcmovg r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 4f bc 80 23 01 00 00[ 	]+cfcmovg r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 41 c2[ 	]+cfcmovno ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 41 c2[ 	]+cfcmovno r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 41 94 80 23 01 00 00[ 	]+cfcmovno WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 41 d1[ 	]+cfcmovno edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 41 d1[ 	]+cfcmovno r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 41 8c 80 23 01 00 00[ 	]+cfcmovno DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 41 ff[ 	]+cfcmovno r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 41 ff[ 	]+cfcmovno r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 41 bc 80 23 01 00 00[ 	]+cfcmovno QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 41 94 80 23 01 00 00[ 	]+cfcmovno dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 41 94 80 23 01 00 00[ 	]+cfcmovno ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 41 8c 80 23 01 00 00[ 	]+cfcmovno ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 41 8c 80 23 01 00 00[ 	]+cfcmovno edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 41 bc 80 23 01 00 00[ 	]+cfcmovno r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 41 bc 80 23 01 00 00[ 	]+cfcmovno r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 4b c2[ 	]+cfcmovnp ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 4b c2[ 	]+cfcmovnp r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 4b 94 80 23 01 00 00[ 	]+cfcmovnp WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 4b d1[ 	]+cfcmovnp edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 4b d1[ 	]+cfcmovnp r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 4b 8c 80 23 01 00 00[ 	]+cfcmovnp DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 4b ff[ 	]+cfcmovnp r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 4b ff[ 	]+cfcmovnp r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 4b bc 80 23 01 00 00[ 	]+cfcmovnp QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 4b 94 80 23 01 00 00[ 	]+cfcmovnp dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 4b 94 80 23 01 00 00[ 	]+cfcmovnp ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 4b 8c 80 23 01 00 00[ 	]+cfcmovnp ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 4b 8c 80 23 01 00 00[ 	]+cfcmovnp edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 4b bc 80 23 01 00 00[ 	]+cfcmovnp r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 4b bc 80 23 01 00 00[ 	]+cfcmovnp r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 49 c2[ 	]+cfcmovns ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 49 c2[ 	]+cfcmovns r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 49 94 80 23 01 00 00[ 	]+cfcmovns WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 49 d1[ 	]+cfcmovns edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 49 d1[ 	]+cfcmovns r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 49 8c 80 23 01 00 00[ 	]+cfcmovns DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 49 ff[ 	]+cfcmovns r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 49 ff[ 	]+cfcmovns r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 49 bc 80 23 01 00 00[ 	]+cfcmovns QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 49 94 80 23 01 00 00[ 	]+cfcmovns dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 49 94 80 23 01 00 00[ 	]+cfcmovns ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 49 8c 80 23 01 00 00[ 	]+cfcmovns ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 49 8c 80 23 01 00 00[ 	]+cfcmovns edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 49 bc 80 23 01 00 00[ 	]+cfcmovns r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 49 bc 80 23 01 00 00[ 	]+cfcmovns r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 45 c2[ 	]+cfcmovne ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 45 c2[ 	]+cfcmovne r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 45 94 80 23 01 00 00[ 	]+cfcmovne WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 45 d1[ 	]+cfcmovne edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 45 d1[ 	]+cfcmovne r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 45 8c 80 23 01 00 00[ 	]+cfcmovne DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 45 ff[ 	]+cfcmovne r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 45 ff[ 	]+cfcmovne r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 45 bc 80 23 01 00 00[ 	]+cfcmovne QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 45 94 80 23 01 00 00[ 	]+cfcmovne dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 45 94 80 23 01 00 00[ 	]+cfcmovne ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 45 8c 80 23 01 00 00[ 	]+cfcmovne ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 45 8c 80 23 01 00 00[ 	]+cfcmovne edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 45 bc 80 23 01 00 00[ 	]+cfcmovne r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 45 bc 80 23 01 00 00[ 	]+cfcmovne r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 40 c2[ 	]+cfcmovo ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 40 c2[ 	]+cfcmovo r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 40 94 80 23 01 00 00[ 	]+cfcmovo WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 40 d1[ 	]+cfcmovo edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 40 d1[ 	]+cfcmovo r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 40 8c 80 23 01 00 00[ 	]+cfcmovo DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 40 ff[ 	]+cfcmovo r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 40 ff[ 	]+cfcmovo r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 40 bc 80 23 01 00 00[ 	]+cfcmovo QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 40 94 80 23 01 00 00[ 	]+cfcmovo dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 40 94 80 23 01 00 00[ 	]+cfcmovo ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 40 8c 80 23 01 00 00[ 	]+cfcmovo ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 40 8c 80 23 01 00 00[ 	]+cfcmovo edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 40 bc 80 23 01 00 00[ 	]+cfcmovo r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 40 bc 80 23 01 00 00[ 	]+cfcmovo r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 4a c2[ 	]+cfcmovp ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 4a c2[ 	]+cfcmovp r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 4a 94 80 23 01 00 00[ 	]+cfcmovp WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 4a d1[ 	]+cfcmovp edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 4a d1[ 	]+cfcmovp r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 4a 8c 80 23 01 00 00[ 	]+cfcmovp DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 4a ff[ 	]+cfcmovp r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 4a ff[ 	]+cfcmovp r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 4a bc 80 23 01 00 00[ 	]+cfcmovp QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 4a 94 80 23 01 00 00[ 	]+cfcmovp dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 4a 94 80 23 01 00 00[ 	]+cfcmovp ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 4a 8c 80 23 01 00 00[ 	]+cfcmovp ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 4a 8c 80 23 01 00 00[ 	]+cfcmovp edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 4a bc 80 23 01 00 00[ 	]+cfcmovp r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 4a bc 80 23 01 00 00[ 	]+cfcmovp r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 48 c2[ 	]+cfcmovs ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 48 c2[ 	]+cfcmovs r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 48 94 80 23 01 00 00[ 	]+cfcmovs WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 48 d1[ 	]+cfcmovs edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 48 d1[ 	]+cfcmovs r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 48 8c 80 23 01 00 00[ 	]+cfcmovs DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 48 ff[ 	]+cfcmovs r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 48 ff[ 	]+cfcmovs r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 48 bc 80 23 01 00 00[ 	]+cfcmovs QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 48 94 80 23 01 00 00[ 	]+cfcmovs dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 48 94 80 23 01 00 00[ 	]+cfcmovs ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 48 8c 80 23 01 00 00[ 	]+cfcmovs ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 48 8c 80 23 01 00 00[ 	]+cfcmovs edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 48 bc 80 23 01 00 00[ 	]+cfcmovs r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 48 bc 80 23 01 00 00[ 	]+cfcmovs r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 44 c2[ 	]+cfcmove ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 44 c2[ 	]+cfcmove r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 44 94 80 23 01 00 00[ 	]+cfcmove WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 44 d1[ 	]+cfcmove edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 44 d1[ 	]+cfcmove r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 44 8c 80 23 01 00 00[ 	]+cfcmove DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 44 ff[ 	]+cfcmove r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 44 ff[ 	]+cfcmove r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 44 bc 80 23 01 00 00[ 	]+cfcmove QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 44 94 80 23 01 00 00[ 	]+cfcmove dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 44 94 80 23 01 00 00[ 	]+cfcmove ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 44 8c 80 23 01 00 00[ 	]+cfcmove ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 44 8c 80 23 01 00 00[ 	]+cfcmove edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 44 bc 80 23 01 00 00[ 	]+cfcmove r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 44 bc 80 23 01 00 00[ 	]+cfcmove r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 42 c2[ 	]+cmovb  r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 42 d1[ 	]+cmovb  r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 42 ff[ 	]+cmovb  r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 42 94 80 23 01 00 00[ 	]+cmovb  ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 42 8c 80 23 01 00 00[ 	]+cmovb  edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 42 bc 80 23 01 00 00[ 	]+cmovb  r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 46 c2[ 	]+cmovbe r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 46 d1[ 	]+cmovbe r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 46 ff[ 	]+cmovbe r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 46 94 80 23 01 00 00[ 	]+cmovbe ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 46 8c 80 23 01 00 00[ 	]+cmovbe edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 46 bc 80 23 01 00 00[ 	]+cmovbe r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 4c c2[ 	]+cmovl  r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 4c d1[ 	]+cmovl  r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 4c ff[ 	]+cmovl  r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 4c 94 80 23 01 00 00[ 	]+cmovl  ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 4c 8c 80 23 01 00 00[ 	]+cmovl  edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 4c bc 80 23 01 00 00[ 	]+cmovl  r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 4e c2[ 	]+cmovle r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 4e d1[ 	]+cmovle r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 4e ff[ 	]+cmovle r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 4e 94 80 23 01 00 00[ 	]+cmovle ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 4e 8c 80 23 01 00 00[ 	]+cmovle edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 4e bc 80 23 01 00 00[ 	]+cmovle r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 43 c2[ 	]+cmovae r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 43 d1[ 	]+cmovae r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 43 ff[ 	]+cmovae r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 43 94 80 23 01 00 00[ 	]+cmovae ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 43 8c 80 23 01 00 00[ 	]+cmovae edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 43 bc 80 23 01 00 00[ 	]+cmovae r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 47 c2[ 	]+cmova  r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 47 d1[ 	]+cmova  r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 47 ff[ 	]+cmova  r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 47 94 80 23 01 00 00[ 	]+cmova  ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 47 8c 80 23 01 00 00[ 	]+cmova  edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 47 bc 80 23 01 00 00[ 	]+cmova  r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 4d c2[ 	]+cmovge r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 4d d1[ 	]+cmovge r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 4d ff[ 	]+cmovge r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 4d 94 80 23 01 00 00[ 	]+cmovge ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 4d 8c 80 23 01 00 00[ 	]+cmovge edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 4d bc 80 23 01 00 00[ 	]+cmovge r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 4f c2[ 	]+cmovg  r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 4f d1[ 	]+cmovg  r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 4f ff[ 	]+cmovg  r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 4f 94 80 23 01 00 00[ 	]+cmovg  ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 4f 8c 80 23 01 00 00[ 	]+cmovg  edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 4f bc 80 23 01 00 00[ 	]+cmovg  r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 41 c2[ 	]+cmovno r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 41 d1[ 	]+cmovno r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 41 ff[ 	]+cmovno r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 41 94 80 23 01 00 00[ 	]+cmovno ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 41 8c 80 23 01 00 00[ 	]+cmovno edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 41 bc 80 23 01 00 00[ 	]+cmovno r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 4b c2[ 	]+cmovnp r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 4b d1[ 	]+cmovnp r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 4b ff[ 	]+cmovnp r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 4b 94 80 23 01 00 00[ 	]+cmovnp ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 4b 8c 80 23 01 00 00[ 	]+cmovnp edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 4b bc 80 23 01 00 00[ 	]+cmovnp r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 49 c2[ 	]+cmovns r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 49 d1[ 	]+cmovns r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 49 ff[ 	]+cmovns r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 49 94 80 23 01 00 00[ 	]+cmovns ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 49 8c 80 23 01 00 00[ 	]+cmovns edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 49 bc 80 23 01 00 00[ 	]+cmovns r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 45 c2[ 	]+cmovne r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 45 d1[ 	]+cmovne r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 45 ff[ 	]+cmovne r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 45 94 80 23 01 00 00[ 	]+cmovne ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 45 8c 80 23 01 00 00[ 	]+cmovne edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 45 bc 80 23 01 00 00[ 	]+cmovne r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 40 c2[ 	]+cmovo  r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 40 d1[ 	]+cmovo  r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 40 ff[ 	]+cmovo  r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 40 94 80 23 01 00 00[ 	]+cmovo  ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 40 8c 80 23 01 00 00[ 	]+cmovo  edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 40 bc 80 23 01 00 00[ 	]+cmovo  r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 4a c2[ 	]+cmovp  r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 4a d1[ 	]+cmovp  r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 4a ff[ 	]+cmovp  r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 4a 94 80 23 01 00 00[ 	]+cmovp  ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 4a 8c 80 23 01 00 00[ 	]+cmovp  edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 4a bc 80 23 01 00 00[ 	]+cmovp  r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 48 c2[ 	]+cmovs  r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 48 d1[ 	]+cmovs  r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 48 ff[ 	]+cmovs  r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 48 94 80 23 01 00 00[ 	]+cmovs  ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 48 8c 80 23 01 00 00[ 	]+cmovs  edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 48 bc 80 23 01 00 00[ 	]+cmovs  r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 44 c2[ 	]+cmove  r31w,ax,dx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 44 d1[ 	]+cmove  r10d,edx,ecx
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 44 ff[ 	]+cmove  r11,r15,r31
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 44 94 80 23 01 00 00[ 	]+cmove  ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 44 8c 80 23 01 00 00[ 	]+cmove  edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 44 bc 80 23 01 00 00[ 	]+cmove  r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
diff --git a/gas/testsuite/gas/i386/x86-64-apx-cfcmov.d b/gas/testsuite/gas/i386/x86-64-apx-cfcmov.d
new file mode 100644
index 00000000000..28f8e021495
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-cfcmov.d
@@ -0,0 +1,685 @@ 
+#as:
+#objdump: -dw
+#name: x86_64 APX_F insns
+#source: x86-64-apx-cfcmov.s
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+0+ <_start>:
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 42 c2[ 	]+cfcmovb %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 0c 42 d0[ 	]+cfcmovb %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 42 c2[ 	]+cfcmovb %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 42 94 80 23 01 00 00[ 	]+cfcmovb %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 42 d1[ 	]+cfcmovb %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 42 d1[ 	]+cfcmovb %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 42 8c 80 23 01 00 00[ 	]+cfcmovb %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 42 ff[ 	]+cfcmovb %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 42 ff[ 	]+cfcmovb %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 42 bc 80 23 01 00 00[ 	]+cfcmovb %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 42 94 80 23 01 00 00[ 	]+cfcmovb 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 42 94 80 23 01 00 00[ 	]+cfcmovb 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 42 8c 80 23 01 00 00[ 	]+cfcmovb 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 42 8c 80 23 01 00 00[ 	]+cfcmovb 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 42 bc 80 23 01 00 00[ 	]+cfcmovb 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 42 bc 80 23 01 00 00[ 	]+cfcmovb 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 46 c2[ 	]+cfcmovbe %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 46 c2[ 	]+cfcmovbe %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 46 94 80 23 01 00 00[ 	]+cfcmovbe %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 46 d1[ 	]+cfcmovbe %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 46 d1[ 	]+cfcmovbe %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 46 8c 80 23 01 00 00[ 	]+cfcmovbe %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 46 ff[ 	]+cfcmovbe %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 46 ff[ 	]+cfcmovbe %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 46 bc 80 23 01 00 00[ 	]+cfcmovbe %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 46 94 80 23 01 00 00[ 	]+cfcmovbe 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 46 94 80 23 01 00 00[ 	]+cfcmovbe 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 46 8c 80 23 01 00 00[ 	]+cfcmovbe 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 46 8c 80 23 01 00 00[ 	]+cfcmovbe 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 46 bc 80 23 01 00 00[ 	]+cfcmovbe 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 46 bc 80 23 01 00 00[ 	]+cfcmovbe 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 4c c2[ 	]+cfcmovl %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 4c c2[ 	]+cfcmovl %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 4c 94 80 23 01 00 00[ 	]+cfcmovl %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 4c d1[ 	]+cfcmovl %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 4c d1[ 	]+cfcmovl %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 4c 8c 80 23 01 00 00[ 	]+cfcmovl %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 4c ff[ 	]+cfcmovl %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 4c ff[ 	]+cfcmovl %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 4c bc 80 23 01 00 00[ 	]+cfcmovl %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 4c 94 80 23 01 00 00[ 	]+cfcmovl 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 4c 94 80 23 01 00 00[ 	]+cfcmovl 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 4c 8c 80 23 01 00 00[ 	]+cfcmovl 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 4c 8c 80 23 01 00 00[ 	]+cfcmovl 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 4c bc 80 23 01 00 00[ 	]+cfcmovl 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 4c bc 80 23 01 00 00[ 	]+cfcmovl 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 4e c2[ 	]+cfcmovle %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 4e c2[ 	]+cfcmovle %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 4e 94 80 23 01 00 00[ 	]+cfcmovle %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 4e d1[ 	]+cfcmovle %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 4e d1[ 	]+cfcmovle %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 4e 8c 80 23 01 00 00[ 	]+cfcmovle %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 4e ff[ 	]+cfcmovle %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 4e ff[ 	]+cfcmovle %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 4e bc 80 23 01 00 00[ 	]+cfcmovle %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 4e 94 80 23 01 00 00[ 	]+cfcmovle 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 4e 94 80 23 01 00 00[ 	]+cfcmovle 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 4e 8c 80 23 01 00 00[ 	]+cfcmovle 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 4e 8c 80 23 01 00 00[ 	]+cfcmovle 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 4e bc 80 23 01 00 00[ 	]+cfcmovle 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 4e bc 80 23 01 00 00[ 	]+cfcmovle 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 43 c2[ 	]+cfcmovae %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 43 c2[ 	]+cfcmovae %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 43 94 80 23 01 00 00[ 	]+cfcmovae %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 43 d1[ 	]+cfcmovae %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 43 d1[ 	]+cfcmovae %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 43 8c 80 23 01 00 00[ 	]+cfcmovae %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 43 ff[ 	]+cfcmovae %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 43 ff[ 	]+cfcmovae %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 43 bc 80 23 01 00 00[ 	]+cfcmovae %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 43 94 80 23 01 00 00[ 	]+cfcmovae 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 43 94 80 23 01 00 00[ 	]+cfcmovae 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 43 8c 80 23 01 00 00[ 	]+cfcmovae 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 43 8c 80 23 01 00 00[ 	]+cfcmovae 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 43 bc 80 23 01 00 00[ 	]+cfcmovae 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 43 bc 80 23 01 00 00[ 	]+cfcmovae 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 47 c2[ 	]+cfcmova %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 47 c2[ 	]+cfcmova %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 47 94 80 23 01 00 00[ 	]+cfcmova %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 47 d1[ 	]+cfcmova %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 47 d1[ 	]+cfcmova %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 47 8c 80 23 01 00 00[ 	]+cfcmova %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 47 ff[ 	]+cfcmova %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 47 ff[ 	]+cfcmova %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 47 bc 80 23 01 00 00[ 	]+cfcmova %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 47 94 80 23 01 00 00[ 	]+cfcmova 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 47 94 80 23 01 00 00[ 	]+cfcmova 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 47 8c 80 23 01 00 00[ 	]+cfcmova 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 47 8c 80 23 01 00 00[ 	]+cfcmova 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 47 bc 80 23 01 00 00[ 	]+cfcmova 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 47 bc 80 23 01 00 00[ 	]+cfcmova 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 4d c2[ 	]+cfcmovge %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 4d c2[ 	]+cfcmovge %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 4d 94 80 23 01 00 00[ 	]+cfcmovge %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 4d d1[ 	]+cfcmovge %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 4d d1[ 	]+cfcmovge %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 4d 8c 80 23 01 00 00[ 	]+cfcmovge %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 4d ff[ 	]+cfcmovge %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 4d ff[ 	]+cfcmovge %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 4d bc 80 23 01 00 00[ 	]+cfcmovge %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 4d 94 80 23 01 00 00[ 	]+cfcmovge 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 4d 94 80 23 01 00 00[ 	]+cfcmovge 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 4d 8c 80 23 01 00 00[ 	]+cfcmovge 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 4d 8c 80 23 01 00 00[ 	]+cfcmovge 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 4d bc 80 23 01 00 00[ 	]+cfcmovge 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 4d bc 80 23 01 00 00[ 	]+cfcmovge 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 4f c2[ 	]+cfcmovg %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 4f c2[ 	]+cfcmovg %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 4f 94 80 23 01 00 00[ 	]+cfcmovg %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 4f d1[ 	]+cfcmovg %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 4f d1[ 	]+cfcmovg %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 4f 8c 80 23 01 00 00[ 	]+cfcmovg %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 4f ff[ 	]+cfcmovg %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 4f ff[ 	]+cfcmovg %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 4f bc 80 23 01 00 00[ 	]+cfcmovg %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 4f 94 80 23 01 00 00[ 	]+cfcmovg 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 4f 94 80 23 01 00 00[ 	]+cfcmovg 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 4f 8c 80 23 01 00 00[ 	]+cfcmovg 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 4f 8c 80 23 01 00 00[ 	]+cfcmovg 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 4f bc 80 23 01 00 00[ 	]+cfcmovg 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 4f bc 80 23 01 00 00[ 	]+cfcmovg 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 41 c2[ 	]+cfcmovno %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 41 c2[ 	]+cfcmovno %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 41 94 80 23 01 00 00[ 	]+cfcmovno %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 41 d1[ 	]+cfcmovno %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 41 d1[ 	]+cfcmovno %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 41 8c 80 23 01 00 00[ 	]+cfcmovno %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 41 ff[ 	]+cfcmovno %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 41 ff[ 	]+cfcmovno %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 41 bc 80 23 01 00 00[ 	]+cfcmovno %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 41 94 80 23 01 00 00[ 	]+cfcmovno 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 41 94 80 23 01 00 00[ 	]+cfcmovno 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 41 8c 80 23 01 00 00[ 	]+cfcmovno 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 41 8c 80 23 01 00 00[ 	]+cfcmovno 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 41 bc 80 23 01 00 00[ 	]+cfcmovno 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 41 bc 80 23 01 00 00[ 	]+cfcmovno 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 4b c2[ 	]+cfcmovnp %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 4b c2[ 	]+cfcmovnp %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 4b 94 80 23 01 00 00[ 	]+cfcmovnp %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 4b d1[ 	]+cfcmovnp %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 4b d1[ 	]+cfcmovnp %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 4b 8c 80 23 01 00 00[ 	]+cfcmovnp %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 4b ff[ 	]+cfcmovnp %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 4b ff[ 	]+cfcmovnp %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 4b bc 80 23 01 00 00[ 	]+cfcmovnp %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 4b 94 80 23 01 00 00[ 	]+cfcmovnp 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 4b 94 80 23 01 00 00[ 	]+cfcmovnp 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 4b 8c 80 23 01 00 00[ 	]+cfcmovnp 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 4b 8c 80 23 01 00 00[ 	]+cfcmovnp 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 4b bc 80 23 01 00 00[ 	]+cfcmovnp 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 4b bc 80 23 01 00 00[ 	]+cfcmovnp 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 49 c2[ 	]+cfcmovns %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 49 c2[ 	]+cfcmovns %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 49 94 80 23 01 00 00[ 	]+cfcmovns %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 49 d1[ 	]+cfcmovns %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 49 d1[ 	]+cfcmovns %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 49 8c 80 23 01 00 00[ 	]+cfcmovns %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 49 ff[ 	]+cfcmovns %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 49 ff[ 	]+cfcmovns %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 49 bc 80 23 01 00 00[ 	]+cfcmovns %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 49 94 80 23 01 00 00[ 	]+cfcmovns 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 49 94 80 23 01 00 00[ 	]+cfcmovns 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 49 8c 80 23 01 00 00[ 	]+cfcmovns 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 49 8c 80 23 01 00 00[ 	]+cfcmovns 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 49 bc 80 23 01 00 00[ 	]+cfcmovns 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 49 bc 80 23 01 00 00[ 	]+cfcmovns 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 45 c2[ 	]+cfcmovne %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 45 c2[ 	]+cfcmovne %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 45 94 80 23 01 00 00[ 	]+cfcmovne %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 45 d1[ 	]+cfcmovne %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 45 d1[ 	]+cfcmovne %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 45 8c 80 23 01 00 00[ 	]+cfcmovne %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 45 ff[ 	]+cfcmovne %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 45 ff[ 	]+cfcmovne %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 45 bc 80 23 01 00 00[ 	]+cfcmovne %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 45 94 80 23 01 00 00[ 	]+cfcmovne 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 45 94 80 23 01 00 00[ 	]+cfcmovne 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 45 8c 80 23 01 00 00[ 	]+cfcmovne 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 45 8c 80 23 01 00 00[ 	]+cfcmovne 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 45 bc 80 23 01 00 00[ 	]+cfcmovne 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 45 bc 80 23 01 00 00[ 	]+cfcmovne 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 40 c2[ 	]+cfcmovo %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 40 c2[ 	]+cfcmovo %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 40 94 80 23 01 00 00[ 	]+cfcmovo %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 40 d1[ 	]+cfcmovo %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 40 d1[ 	]+cfcmovo %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 40 8c 80 23 01 00 00[ 	]+cfcmovo %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 40 ff[ 	]+cfcmovo %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 40 ff[ 	]+cfcmovo %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 40 bc 80 23 01 00 00[ 	]+cfcmovo %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 40 94 80 23 01 00 00[ 	]+cfcmovo 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 40 94 80 23 01 00 00[ 	]+cfcmovo 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 40 8c 80 23 01 00 00[ 	]+cfcmovo 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 40 8c 80 23 01 00 00[ 	]+cfcmovo 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 40 bc 80 23 01 00 00[ 	]+cfcmovo 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 40 bc 80 23 01 00 00[ 	]+cfcmovo 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 4a c2[ 	]+cfcmovp %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 4a c2[ 	]+cfcmovp %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 4a 94 80 23 01 00 00[ 	]+cfcmovp %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 4a d1[ 	]+cfcmovp %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 4a d1[ 	]+cfcmovp %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 4a 8c 80 23 01 00 00[ 	]+cfcmovp %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 4a ff[ 	]+cfcmovp %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 4a ff[ 	]+cfcmovp %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 4a bc 80 23 01 00 00[ 	]+cfcmovp %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 4a 94 80 23 01 00 00[ 	]+cfcmovp 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 4a 94 80 23 01 00 00[ 	]+cfcmovp 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 4a 8c 80 23 01 00 00[ 	]+cfcmovp 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 4a 8c 80 23 01 00 00[ 	]+cfcmovp 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 4a bc 80 23 01 00 00[ 	]+cfcmovp 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 4a bc 80 23 01 00 00[ 	]+cfcmovp 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 48 c2[ 	]+cfcmovs %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 48 c2[ 	]+cfcmovs %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 48 94 80 23 01 00 00[ 	]+cfcmovs %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 48 d1[ 	]+cfcmovs %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 48 d1[ 	]+cfcmovs %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 48 8c 80 23 01 00 00[ 	]+cfcmovs %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 48 ff[ 	]+cfcmovs %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 48 ff[ 	]+cfcmovs %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 48 bc 80 23 01 00 00[ 	]+cfcmovs %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 48 94 80 23 01 00 00[ 	]+cfcmovs 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 48 94 80 23 01 00 00[ 	]+cfcmovs 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 48 8c 80 23 01 00 00[ 	]+cfcmovs 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 48 8c 80 23 01 00 00[ 	]+cfcmovs 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 48 bc 80 23 01 00 00[ 	]+cfcmovs 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 48 bc 80 23 01 00 00[ 	]+cfcmovs 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 44 c2[ 	]+cfcmove %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 44 c2[ 	]+cfcmove %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 44 94 80 23 01 00 00[ 	]+cfcmove %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 44 d1[ 	]+cfcmove %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 44 d1[ 	]+cfcmove %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 44 8c 80 23 01 00 00[ 	]+cfcmove %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 44 ff[ 	]+cfcmove %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 44 ff[ 	]+cfcmove %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 44 bc 80 23 01 00 00[ 	]+cfcmove %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 44 94 80 23 01 00 00[ 	]+cfcmove 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 44 94 80 23 01 00 00[ 	]+cfcmove 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 44 8c 80 23 01 00 00[ 	]+cfcmove 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 44 8c 80 23 01 00 00[ 	]+cfcmove 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 44 bc 80 23 01 00 00[ 	]+cfcmove 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 44 bc 80 23 01 00 00[ 	]+cfcmove 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 42 c2[ 	]+cmovb  %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 42 d1[ 	]+cmovb  %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 42 ff[ 	]+cmovb  %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 42 94 80 23 01 00 00[ 	]+cmovb  0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 42 8c 80 23 01 00 00[ 	]+cmovb  0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 42 bc 80 23 01 00 00[ 	]+cmovb  0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 46 c2[ 	]+cmovbe %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 46 d1[ 	]+cmovbe %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 46 ff[ 	]+cmovbe %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 46 94 80 23 01 00 00[ 	]+cmovbe 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 46 8c 80 23 01 00 00[ 	]+cmovbe 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 46 bc 80 23 01 00 00[ 	]+cmovbe 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 4c c2[ 	]+cmovl  %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 4c d1[ 	]+cmovl  %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 4c ff[ 	]+cmovl  %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 4c 94 80 23 01 00 00[ 	]+cmovl  0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 4c 8c 80 23 01 00 00[ 	]+cmovl  0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 4c bc 80 23 01 00 00[ 	]+cmovl  0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 4e c2[ 	]+cmovle %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 4e d1[ 	]+cmovle %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 4e ff[ 	]+cmovle %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 4e 94 80 23 01 00 00[ 	]+cmovle 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 4e 8c 80 23 01 00 00[ 	]+cmovle 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 4e bc 80 23 01 00 00[ 	]+cmovle 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 43 c2[ 	]+cmovae %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 43 d1[ 	]+cmovae %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 43 ff[ 	]+cmovae %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 43 94 80 23 01 00 00[ 	]+cmovae 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 43 8c 80 23 01 00 00[ 	]+cmovae 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 43 bc 80 23 01 00 00[ 	]+cmovae 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 47 c2[ 	]+cmova  %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 47 d1[ 	]+cmova  %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 47 ff[ 	]+cmova  %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 47 94 80 23 01 00 00[ 	]+cmova  0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 47 8c 80 23 01 00 00[ 	]+cmova  0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 47 bc 80 23 01 00 00[ 	]+cmova  0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 4d c2[ 	]+cmovge %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 4d d1[ 	]+cmovge %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 4d ff[ 	]+cmovge %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 4d 94 80 23 01 00 00[ 	]+cmovge 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 4d 8c 80 23 01 00 00[ 	]+cmovge 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 4d bc 80 23 01 00 00[ 	]+cmovge 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 4f c2[ 	]+cmovg  %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 4f d1[ 	]+cmovg  %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 4f ff[ 	]+cmovg  %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 4f 94 80 23 01 00 00[ 	]+cmovg  0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 4f 8c 80 23 01 00 00[ 	]+cmovg  0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 4f bc 80 23 01 00 00[ 	]+cmovg  0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 41 c2[ 	]+cmovno %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 41 d1[ 	]+cmovno %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 41 ff[ 	]+cmovno %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 41 94 80 23 01 00 00[ 	]+cmovno 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 41 8c 80 23 01 00 00[ 	]+cmovno 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 41 bc 80 23 01 00 00[ 	]+cmovno 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 4b c2[ 	]+cmovnp %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 4b d1[ 	]+cmovnp %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 4b ff[ 	]+cmovnp %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 4b 94 80 23 01 00 00[ 	]+cmovnp 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 4b 8c 80 23 01 00 00[ 	]+cmovnp 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 4b bc 80 23 01 00 00[ 	]+cmovnp 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 49 c2[ 	]+cmovns %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 49 d1[ 	]+cmovns %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 49 ff[ 	]+cmovns %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 49 94 80 23 01 00 00[ 	]+cmovns 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 49 8c 80 23 01 00 00[ 	]+cmovns 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 49 bc 80 23 01 00 00[ 	]+cmovns 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 45 c2[ 	]+cmovne %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 45 d1[ 	]+cmovne %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 45 ff[ 	]+cmovne %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 45 94 80 23 01 00 00[ 	]+cmovne 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 45 8c 80 23 01 00 00[ 	]+cmovne 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 45 bc 80 23 01 00 00[ 	]+cmovne 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 40 c2[ 	]+cmovo  %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 40 d1[ 	]+cmovo  %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 40 ff[ 	]+cmovo  %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 40 94 80 23 01 00 00[ 	]+cmovo  0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 40 8c 80 23 01 00 00[ 	]+cmovo  0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 40 bc 80 23 01 00 00[ 	]+cmovo  0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 4a c2[ 	]+cmovp  %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 4a d1[ 	]+cmovp  %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 4a ff[ 	]+cmovp  %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 4a 94 80 23 01 00 00[ 	]+cmovp  0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 4a 8c 80 23 01 00 00[ 	]+cmovp  0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 4a bc 80 23 01 00 00[ 	]+cmovp  0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 48 c2[ 	]+cmovs  %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 48 d1[ 	]+cmovs  %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 48 ff[ 	]+cmovs  %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 48 94 80 23 01 00 00[ 	]+cmovs  0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 48 8c 80 23 01 00 00[ 	]+cmovs  0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 48 bc 80 23 01 00 00[ 	]+cmovs  0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 44 c2[ 	]+cmove  %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 44 d1[ 	]+cmove  %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 44 ff[ 	]+cmove  %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 44 94 80 23 01 00 00[ 	]+cmove  0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 44 8c 80 23 01 00 00[ 	]+cmove  0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 44 bc 80 23 01 00 00[ 	]+cmove  0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 42 c2[ 	]+cfcmovb %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 0c 42 d0[ 	]+cfcmovb %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 42 c2[ 	]+cfcmovb %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 42 94 80 23 01 00 00[ 	]+cfcmovb %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 42 d1[ 	]+cfcmovb %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 42 d1[ 	]+cfcmovb %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 42 8c 80 23 01 00 00[ 	]+cfcmovb %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 42 ff[ 	]+cfcmovb %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 42 ff[ 	]+cfcmovb %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 42 bc 80 23 01 00 00[ 	]+cfcmovb %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 42 94 80 23 01 00 00[ 	]+cfcmovb 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 42 94 80 23 01 00 00[ 	]+cfcmovb 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 42 8c 80 23 01 00 00[ 	]+cfcmovb 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 42 8c 80 23 01 00 00[ 	]+cfcmovb 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 42 bc 80 23 01 00 00[ 	]+cfcmovb 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 42 bc 80 23 01 00 00[ 	]+cfcmovb 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 46 c2[ 	]+cfcmovbe %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 46 c2[ 	]+cfcmovbe %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 46 94 80 23 01 00 00[ 	]+cfcmovbe %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 46 d1[ 	]+cfcmovbe %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 46 d1[ 	]+cfcmovbe %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 46 8c 80 23 01 00 00[ 	]+cfcmovbe %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 46 ff[ 	]+cfcmovbe %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 46 ff[ 	]+cfcmovbe %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 46 bc 80 23 01 00 00[ 	]+cfcmovbe %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 46 94 80 23 01 00 00[ 	]+cfcmovbe 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 46 94 80 23 01 00 00[ 	]+cfcmovbe 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 46 8c 80 23 01 00 00[ 	]+cfcmovbe 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 46 8c 80 23 01 00 00[ 	]+cfcmovbe 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 46 bc 80 23 01 00 00[ 	]+cfcmovbe 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 46 bc 80 23 01 00 00[ 	]+cfcmovbe 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 4c c2[ 	]+cfcmovl %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 4c c2[ 	]+cfcmovl %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 4c 94 80 23 01 00 00[ 	]+cfcmovl %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 4c d1[ 	]+cfcmovl %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 4c d1[ 	]+cfcmovl %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 4c 8c 80 23 01 00 00[ 	]+cfcmovl %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 4c ff[ 	]+cfcmovl %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 4c ff[ 	]+cfcmovl %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 4c bc 80 23 01 00 00[ 	]+cfcmovl %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 4c 94 80 23 01 00 00[ 	]+cfcmovl 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 4c 94 80 23 01 00 00[ 	]+cfcmovl 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 4c 8c 80 23 01 00 00[ 	]+cfcmovl 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 4c 8c 80 23 01 00 00[ 	]+cfcmovl 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 4c bc 80 23 01 00 00[ 	]+cfcmovl 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 4c bc 80 23 01 00 00[ 	]+cfcmovl 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 4e c2[ 	]+cfcmovle %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 4e c2[ 	]+cfcmovle %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 4e 94 80 23 01 00 00[ 	]+cfcmovle %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 4e d1[ 	]+cfcmovle %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 4e d1[ 	]+cfcmovle %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 4e 8c 80 23 01 00 00[ 	]+cfcmovle %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 4e ff[ 	]+cfcmovle %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 4e ff[ 	]+cfcmovle %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 4e bc 80 23 01 00 00[ 	]+cfcmovle %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 4e 94 80 23 01 00 00[ 	]+cfcmovle 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 4e 94 80 23 01 00 00[ 	]+cfcmovle 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 4e 8c 80 23 01 00 00[ 	]+cfcmovle 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 4e 8c 80 23 01 00 00[ 	]+cfcmovle 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 4e bc 80 23 01 00 00[ 	]+cfcmovle 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 4e bc 80 23 01 00 00[ 	]+cfcmovle 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 43 c2[ 	]+cfcmovae %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 43 c2[ 	]+cfcmovae %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 43 94 80 23 01 00 00[ 	]+cfcmovae %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 43 d1[ 	]+cfcmovae %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 43 d1[ 	]+cfcmovae %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 43 8c 80 23 01 00 00[ 	]+cfcmovae %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 43 ff[ 	]+cfcmovae %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 43 ff[ 	]+cfcmovae %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 43 bc 80 23 01 00 00[ 	]+cfcmovae %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 43 94 80 23 01 00 00[ 	]+cfcmovae 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 43 94 80 23 01 00 00[ 	]+cfcmovae 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 43 8c 80 23 01 00 00[ 	]+cfcmovae 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 43 8c 80 23 01 00 00[ 	]+cfcmovae 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 43 bc 80 23 01 00 00[ 	]+cfcmovae 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 43 bc 80 23 01 00 00[ 	]+cfcmovae 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 47 c2[ 	]+cfcmova %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 47 c2[ 	]+cfcmova %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 47 94 80 23 01 00 00[ 	]+cfcmova %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 47 d1[ 	]+cfcmova %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 47 d1[ 	]+cfcmova %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 47 8c 80 23 01 00 00[ 	]+cfcmova %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 47 ff[ 	]+cfcmova %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 47 ff[ 	]+cfcmova %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 47 bc 80 23 01 00 00[ 	]+cfcmova %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 47 94 80 23 01 00 00[ 	]+cfcmova 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 47 94 80 23 01 00 00[ 	]+cfcmova 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 47 8c 80 23 01 00 00[ 	]+cfcmova 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 47 8c 80 23 01 00 00[ 	]+cfcmova 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 47 bc 80 23 01 00 00[ 	]+cfcmova 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 47 bc 80 23 01 00 00[ 	]+cfcmova 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 4d c2[ 	]+cfcmovge %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 4d c2[ 	]+cfcmovge %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 4d 94 80 23 01 00 00[ 	]+cfcmovge %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 4d d1[ 	]+cfcmovge %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 4d d1[ 	]+cfcmovge %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 4d 8c 80 23 01 00 00[ 	]+cfcmovge %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 4d ff[ 	]+cfcmovge %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 4d ff[ 	]+cfcmovge %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 4d bc 80 23 01 00 00[ 	]+cfcmovge %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 4d 94 80 23 01 00 00[ 	]+cfcmovge 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 4d 94 80 23 01 00 00[ 	]+cfcmovge 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 4d 8c 80 23 01 00 00[ 	]+cfcmovge 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 4d 8c 80 23 01 00 00[ 	]+cfcmovge 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 4d bc 80 23 01 00 00[ 	]+cfcmovge 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 4d bc 80 23 01 00 00[ 	]+cfcmovge 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 4f c2[ 	]+cfcmovg %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 4f c2[ 	]+cfcmovg %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 4f 94 80 23 01 00 00[ 	]+cfcmovg %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 4f d1[ 	]+cfcmovg %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 4f d1[ 	]+cfcmovg %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 4f 8c 80 23 01 00 00[ 	]+cfcmovg %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 4f ff[ 	]+cfcmovg %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 4f ff[ 	]+cfcmovg %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 4f bc 80 23 01 00 00[ 	]+cfcmovg %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 4f 94 80 23 01 00 00[ 	]+cfcmovg 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 4f 94 80 23 01 00 00[ 	]+cfcmovg 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 4f 8c 80 23 01 00 00[ 	]+cfcmovg 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 4f 8c 80 23 01 00 00[ 	]+cfcmovg 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 4f bc 80 23 01 00 00[ 	]+cfcmovg 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 4f bc 80 23 01 00 00[ 	]+cfcmovg 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 41 c2[ 	]+cfcmovno %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 41 c2[ 	]+cfcmovno %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 41 94 80 23 01 00 00[ 	]+cfcmovno %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 41 d1[ 	]+cfcmovno %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 41 d1[ 	]+cfcmovno %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 41 8c 80 23 01 00 00[ 	]+cfcmovno %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 41 ff[ 	]+cfcmovno %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 41 ff[ 	]+cfcmovno %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 41 bc 80 23 01 00 00[ 	]+cfcmovno %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 41 94 80 23 01 00 00[ 	]+cfcmovno 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 41 94 80 23 01 00 00[ 	]+cfcmovno 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 41 8c 80 23 01 00 00[ 	]+cfcmovno 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 41 8c 80 23 01 00 00[ 	]+cfcmovno 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 41 bc 80 23 01 00 00[ 	]+cfcmovno 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 41 bc 80 23 01 00 00[ 	]+cfcmovno 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 4b c2[ 	]+cfcmovnp %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 4b c2[ 	]+cfcmovnp %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 4b 94 80 23 01 00 00[ 	]+cfcmovnp %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 4b d1[ 	]+cfcmovnp %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 4b d1[ 	]+cfcmovnp %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 4b 8c 80 23 01 00 00[ 	]+cfcmovnp %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 4b ff[ 	]+cfcmovnp %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 4b ff[ 	]+cfcmovnp %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 4b bc 80 23 01 00 00[ 	]+cfcmovnp %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 4b 94 80 23 01 00 00[ 	]+cfcmovnp 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 4b 94 80 23 01 00 00[ 	]+cfcmovnp 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 4b 8c 80 23 01 00 00[ 	]+cfcmovnp 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 4b 8c 80 23 01 00 00[ 	]+cfcmovnp 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 4b bc 80 23 01 00 00[ 	]+cfcmovnp 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 4b bc 80 23 01 00 00[ 	]+cfcmovnp 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 49 c2[ 	]+cfcmovns %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 49 c2[ 	]+cfcmovns %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 49 94 80 23 01 00 00[ 	]+cfcmovns %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 49 d1[ 	]+cfcmovns %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 49 d1[ 	]+cfcmovns %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 49 8c 80 23 01 00 00[ 	]+cfcmovns %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 49 ff[ 	]+cfcmovns %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 49 ff[ 	]+cfcmovns %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 49 bc 80 23 01 00 00[ 	]+cfcmovns %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 49 94 80 23 01 00 00[ 	]+cfcmovns 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 49 94 80 23 01 00 00[ 	]+cfcmovns 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 49 8c 80 23 01 00 00[ 	]+cfcmovns 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 49 8c 80 23 01 00 00[ 	]+cfcmovns 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 49 bc 80 23 01 00 00[ 	]+cfcmovns 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 49 bc 80 23 01 00 00[ 	]+cfcmovns 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 45 c2[ 	]+cfcmovne %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 45 c2[ 	]+cfcmovne %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 45 94 80 23 01 00 00[ 	]+cfcmovne %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 45 d1[ 	]+cfcmovne %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 45 d1[ 	]+cfcmovne %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 45 8c 80 23 01 00 00[ 	]+cfcmovne %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 45 ff[ 	]+cfcmovne %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 45 ff[ 	]+cfcmovne %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 45 bc 80 23 01 00 00[ 	]+cfcmovne %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 45 94 80 23 01 00 00[ 	]+cfcmovne 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 45 94 80 23 01 00 00[ 	]+cfcmovne 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 45 8c 80 23 01 00 00[ 	]+cfcmovne 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 45 8c 80 23 01 00 00[ 	]+cfcmovne 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 45 bc 80 23 01 00 00[ 	]+cfcmovne 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 45 bc 80 23 01 00 00[ 	]+cfcmovne 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 40 c2[ 	]+cfcmovo %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 40 c2[ 	]+cfcmovo %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 40 94 80 23 01 00 00[ 	]+cfcmovo %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 40 d1[ 	]+cfcmovo %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 40 d1[ 	]+cfcmovo %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 40 8c 80 23 01 00 00[ 	]+cfcmovo %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 40 ff[ 	]+cfcmovo %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 40 ff[ 	]+cfcmovo %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 40 bc 80 23 01 00 00[ 	]+cfcmovo %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 40 94 80 23 01 00 00[ 	]+cfcmovo 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 40 94 80 23 01 00 00[ 	]+cfcmovo 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 40 8c 80 23 01 00 00[ 	]+cfcmovo 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 40 8c 80 23 01 00 00[ 	]+cfcmovo 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 40 bc 80 23 01 00 00[ 	]+cfcmovo 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 40 bc 80 23 01 00 00[ 	]+cfcmovo 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 4a c2[ 	]+cfcmovp %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 4a c2[ 	]+cfcmovp %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 4a 94 80 23 01 00 00[ 	]+cfcmovp %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 4a d1[ 	]+cfcmovp %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 4a d1[ 	]+cfcmovp %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 4a 8c 80 23 01 00 00[ 	]+cfcmovp %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 4a ff[ 	]+cfcmovp %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 4a ff[ 	]+cfcmovp %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 4a bc 80 23 01 00 00[ 	]+cfcmovp %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 4a 94 80 23 01 00 00[ 	]+cfcmovp 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 4a 94 80 23 01 00 00[ 	]+cfcmovp 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 4a 8c 80 23 01 00 00[ 	]+cfcmovp 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 4a 8c 80 23 01 00 00[ 	]+cfcmovp 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 4a bc 80 23 01 00 00[ 	]+cfcmovp 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 4a bc 80 23 01 00 00[ 	]+cfcmovp 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 48 c2[ 	]+cfcmovs %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 48 c2[ 	]+cfcmovs %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 48 94 80 23 01 00 00[ 	]+cfcmovs %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 48 d1[ 	]+cfcmovs %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 48 d1[ 	]+cfcmovs %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 48 8c 80 23 01 00 00[ 	]+cfcmovs %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 48 ff[ 	]+cfcmovs %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 48 ff[ 	]+cfcmovs %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 48 bc 80 23 01 00 00[ 	]+cfcmovs %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 48 94 80 23 01 00 00[ 	]+cfcmovs 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 48 94 80 23 01 00 00[ 	]+cfcmovs 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 48 8c 80 23 01 00 00[ 	]+cfcmovs 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 48 8c 80 23 01 00 00[ 	]+cfcmovs 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 48 bc 80 23 01 00 00[ 	]+cfcmovs 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 48 bc 80 23 01 00 00[ 	]+cfcmovs 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7d 08 44 c2[ 	]+cfcmove %dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 14 44 c2[ 	]+cfcmove %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 0c 44 94 80 23 01 00 00[ 	]+cfcmove %dx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 f4 7c 08 44 d1[ 	]+cfcmove %ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 1c 44 d1[ 	]+cfcmove %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 0c 44 8c 80 23 01 00 00[ 	]+cfcmove %ecx,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 5c fc 08 44 ff[ 	]+cfcmove %r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 1c 44 ff[ 	]+cfcmove %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 0c 44 bc 80 23 01 00 00[ 	]+cfcmove %r31,0x123\(%r8,%rax,4\)
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 08 44 94 80 23 01 00 00[ 	]+cfcmove 0x123\(%r8,%rax,4\),%dx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 1c 44 94 80 23 01 00 00[ 	]+cfcmove 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7c 08 44 8c 80 23 01 00 00[ 	]+cfcmove 0x123\(%r8,%rax,4\),%ecx
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 1c 44 8c 80 23 01 00 00[ 	]+cfcmove 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 fc 08 44 bc 80 23 01 00 00[ 	]+cfcmove 0x123\(%r8,%rax,4\),%r31
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 1c 44 bc 80 23 01 00 00[ 	]+cfcmove 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 42 c2[ 	]+cmovb  %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 42 d1[ 	]+cmovb  %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 42 ff[ 	]+cmovb  %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 42 94 80 23 01 00 00[ 	]+cmovb  0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 42 8c 80 23 01 00 00[ 	]+cmovb  0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 42 bc 80 23 01 00 00[ 	]+cmovb  0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 46 c2[ 	]+cmovbe %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 46 d1[ 	]+cmovbe %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 46 ff[ 	]+cmovbe %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 46 94 80 23 01 00 00[ 	]+cmovbe 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 46 8c 80 23 01 00 00[ 	]+cmovbe 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 46 bc 80 23 01 00 00[ 	]+cmovbe 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 4c c2[ 	]+cmovl  %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 4c d1[ 	]+cmovl  %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 4c ff[ 	]+cmovl  %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 4c 94 80 23 01 00 00[ 	]+cmovl  0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 4c 8c 80 23 01 00 00[ 	]+cmovl  0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 4c bc 80 23 01 00 00[ 	]+cmovl  0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 4e c2[ 	]+cmovle %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 4e d1[ 	]+cmovle %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 4e ff[ 	]+cmovle %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 4e 94 80 23 01 00 00[ 	]+cmovle 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 4e 8c 80 23 01 00 00[ 	]+cmovle 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 4e bc 80 23 01 00 00[ 	]+cmovle 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 43 c2[ 	]+cmovae %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 43 d1[ 	]+cmovae %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 43 ff[ 	]+cmovae %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 43 94 80 23 01 00 00[ 	]+cmovae 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 43 8c 80 23 01 00 00[ 	]+cmovae 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 43 bc 80 23 01 00 00[ 	]+cmovae 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 47 c2[ 	]+cmova  %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 47 d1[ 	]+cmova  %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 47 ff[ 	]+cmova  %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 47 94 80 23 01 00 00[ 	]+cmova  0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 47 8c 80 23 01 00 00[ 	]+cmova  0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 47 bc 80 23 01 00 00[ 	]+cmova  0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 4d c2[ 	]+cmovge %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 4d d1[ 	]+cmovge %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 4d ff[ 	]+cmovge %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 4d 94 80 23 01 00 00[ 	]+cmovge 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 4d 8c 80 23 01 00 00[ 	]+cmovge 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 4d bc 80 23 01 00 00[ 	]+cmovge 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 4f c2[ 	]+cmovg  %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 4f d1[ 	]+cmovg  %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 4f ff[ 	]+cmovg  %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 4f 94 80 23 01 00 00[ 	]+cmovg  0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 4f 8c 80 23 01 00 00[ 	]+cmovg  0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 4f bc 80 23 01 00 00[ 	]+cmovg  0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 41 c2[ 	]+cmovno %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 41 d1[ 	]+cmovno %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 41 ff[ 	]+cmovno %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 41 94 80 23 01 00 00[ 	]+cmovno 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 41 8c 80 23 01 00 00[ 	]+cmovno 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 41 bc 80 23 01 00 00[ 	]+cmovno 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 4b c2[ 	]+cmovnp %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 4b d1[ 	]+cmovnp %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 4b ff[ 	]+cmovnp %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 4b 94 80 23 01 00 00[ 	]+cmovnp 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 4b 8c 80 23 01 00 00[ 	]+cmovnp 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 4b bc 80 23 01 00 00[ 	]+cmovnp 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 49 c2[ 	]+cmovns %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 49 d1[ 	]+cmovns %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 49 ff[ 	]+cmovns %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 49 94 80 23 01 00 00[ 	]+cmovns 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 49 8c 80 23 01 00 00[ 	]+cmovns 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 49 bc 80 23 01 00 00[ 	]+cmovns 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 45 c2[ 	]+cmovne %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 45 d1[ 	]+cmovne %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 45 ff[ 	]+cmovne %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 45 94 80 23 01 00 00[ 	]+cmovne 0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 45 8c 80 23 01 00 00[ 	]+cmovne 0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 45 bc 80 23 01 00 00[ 	]+cmovne 0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 40 c2[ 	]+cmovo  %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 40 d1[ 	]+cmovo  %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 40 ff[ 	]+cmovo  %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 40 94 80 23 01 00 00[ 	]+cmovo  0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 40 8c 80 23 01 00 00[ 	]+cmovo  0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 40 bc 80 23 01 00 00[ 	]+cmovo  0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 4a c2[ 	]+cmovp  %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 4a d1[ 	]+cmovp  %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 4a ff[ 	]+cmovp  %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 4a 94 80 23 01 00 00[ 	]+cmovp  0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 4a 8c 80 23 01 00 00[ 	]+cmovp  0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 4a bc 80 23 01 00 00[ 	]+cmovp  0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 48 c2[ 	]+cmovs  %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 48 d1[ 	]+cmovs  %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 48 ff[ 	]+cmovs  %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 48 94 80 23 01 00 00[ 	]+cmovs  0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 48 8c 80 23 01 00 00[ 	]+cmovs  0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 48 bc 80 23 01 00 00[ 	]+cmovs  0x123\(%r8,%rax,4\),%r31,%r15
+[ 	]*[a-f0-9]+:[ 	]*62 f4 05 10 44 c2[ 	]+cmove  %dx,%ax,%r31w
+[ 	]*[a-f0-9]+:[ 	]*62 f4 2c 18 44 d1[ 	]+cmove  %ecx,%edx,%r10d
+[ 	]*[a-f0-9]+:[ 	]*62 5c a4 18 44 ff[ 	]+cmove  %r31,%r15,%r11
+[ 	]*[a-f0-9]+:[ 	]*62 d4 7d 18 44 94 80 23 01 00 00[ 	]+cmove  0x123\(%r8,%rax,4\),%dx,%ax
+[ 	]*[a-f0-9]+:[ 	]*62 d4 6c 18 44 8c 80 23 01 00 00[ 	]+cmove  0x123\(%r8,%rax,4\),%ecx,%edx
+[ 	]*[a-f0-9]+:[ 	]*62 44 84 18 44 bc 80 23 01 00 00[ 	]+cmove  0x123\(%r8,%rax,4\),%r31,%r15
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-apx-cfcmov.s b/gas/testsuite/gas/i386/x86-64-apx-cfcmov.s
new file mode 100644
index 00000000000..b0a05918e44
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-cfcmov.s
@@ -0,0 +1,680 @@ 
+# Check 64bit EVEX-promoted CMOVcc instructions
+
+	.text
+_start:
+	cfcmovb	%dx,%ax
+	cfcmovb.s	%dx,%ax
+	cfcmovb	%dx,%ax,%r31w
+	cfcmovb	%dx,291(%r8,%rax,4)
+	cfcmovb	%ecx,%edx
+	cfcmovb	%ecx,%edx,%r10d
+	cfcmovb	%ecx,291(%r8,%rax,4)
+	cfcmovb	%r31,%r15
+	cfcmovb	%r31,%r15,%r11
+	cfcmovb	%r31,291(%r8,%rax,4)
+	cfcmovb	291(%r8,%rax,4),%dx
+	cfcmovb	291(%r8,%rax,4),%dx,%ax
+	cfcmovb	291(%r8,%rax,4),%ecx
+	cfcmovb	291(%r8,%rax,4),%ecx,%edx
+	cfcmovb	291(%r8,%rax,4),%r31
+	cfcmovb	291(%r8,%rax,4),%r31,%r15
+	cfcmovbe	%dx,%ax
+	cfcmovbe	%dx,%ax,%r31w
+	cfcmovbe	%dx,291(%r8,%rax,4)
+	cfcmovbe	%ecx,%edx
+	cfcmovbe	%ecx,%edx,%r10d
+	cfcmovbe	%ecx,291(%r8,%rax,4)
+	cfcmovbe	%r31,%r15
+	cfcmovbe	%r31,%r15,%r11
+	cfcmovbe	%r31,291(%r8,%rax,4)
+	cfcmovbe	291(%r8,%rax,4),%dx
+	cfcmovbe	291(%r8,%rax,4),%dx,%ax
+	cfcmovbe	291(%r8,%rax,4),%ecx
+	cfcmovbe	291(%r8,%rax,4),%ecx,%edx
+	cfcmovbe	291(%r8,%rax,4),%r31
+	cfcmovbe	291(%r8,%rax,4),%r31,%r15
+	cfcmovl	%dx,%ax
+	cfcmovl	%dx,%ax,%r31w
+	cfcmovl	%dx,291(%r8,%rax,4)
+	cfcmovl	%ecx,%edx
+	cfcmovl	%ecx,%edx,%r10d
+	cfcmovl	%ecx,291(%r8,%rax,4)
+	cfcmovl	%r31,%r15
+	cfcmovl	%r31,%r15,%r11
+	cfcmovl	%r31,291(%r8,%rax,4)
+	cfcmovl	291(%r8,%rax,4),%dx
+	cfcmovl	291(%r8,%rax,4),%dx,%ax
+	cfcmovl	291(%r8,%rax,4),%ecx
+	cfcmovl	291(%r8,%rax,4),%ecx,%edx
+	cfcmovl	291(%r8,%rax,4),%r31
+	cfcmovl	291(%r8,%rax,4),%r31,%r15
+	cfcmovle	%dx,%ax
+	cfcmovle	%dx,%ax,%r31w
+	cfcmovle	%dx,291(%r8,%rax,4)
+	cfcmovle	%ecx,%edx
+	cfcmovle	%ecx,%edx,%r10d
+	cfcmovle	%ecx,291(%r8,%rax,4)
+	cfcmovle	%r31,%r15
+	cfcmovle	%r31,%r15,%r11
+	cfcmovle	%r31,291(%r8,%rax,4)
+	cfcmovle	291(%r8,%rax,4),%dx
+	cfcmovle	291(%r8,%rax,4),%dx,%ax
+	cfcmovle	291(%r8,%rax,4),%ecx
+	cfcmovle	291(%r8,%rax,4),%ecx,%edx
+	cfcmovle	291(%r8,%rax,4),%r31
+	cfcmovle	291(%r8,%rax,4),%r31,%r15
+	cfcmovnb	%dx,%ax
+	cfcmovnb	%dx,%ax,%r31w
+	cfcmovnb	%dx,291(%r8,%rax,4)
+	cfcmovnb	%ecx,%edx
+	cfcmovnb	%ecx,%edx,%r10d
+	cfcmovnb	%ecx,291(%r8,%rax,4)
+	cfcmovnb	%r31,%r15
+	cfcmovnb	%r31,%r15,%r11
+	cfcmovnb	%r31,291(%r8,%rax,4)
+	cfcmovnb	291(%r8,%rax,4),%dx
+	cfcmovnb	291(%r8,%rax,4),%dx,%ax
+	cfcmovnb	291(%r8,%rax,4),%ecx
+	cfcmovnb	291(%r8,%rax,4),%ecx,%edx
+	cfcmovnb	291(%r8,%rax,4),%r31
+	cfcmovnb	291(%r8,%rax,4),%r31,%r15
+	cfcmovnbe	%dx,%ax
+	cfcmovnbe	%dx,%ax,%r31w
+	cfcmovnbe	%dx,291(%r8,%rax,4)
+	cfcmovnbe	%ecx,%edx
+	cfcmovnbe	%ecx,%edx,%r10d
+	cfcmovnbe	%ecx,291(%r8,%rax,4)
+	cfcmovnbe	%r31,%r15
+	cfcmovnbe	%r31,%r15,%r11
+	cfcmovnbe	%r31,291(%r8,%rax,4)
+	cfcmovnbe	291(%r8,%rax,4),%dx
+	cfcmovnbe	291(%r8,%rax,4),%dx,%ax
+	cfcmovnbe	291(%r8,%rax,4),%ecx
+	cfcmovnbe	291(%r8,%rax,4),%ecx,%edx
+	cfcmovnbe	291(%r8,%rax,4),%r31
+	cfcmovnbe	291(%r8,%rax,4),%r31,%r15
+	cfcmovnl	%dx,%ax
+	cfcmovnl	%dx,%ax,%r31w
+	cfcmovnl	%dx,291(%r8,%rax,4)
+	cfcmovnl	%ecx,%edx
+	cfcmovnl	%ecx,%edx,%r10d
+	cfcmovnl	%ecx,291(%r8,%rax,4)
+	cfcmovnl	%r31,%r15
+	cfcmovnl	%r31,%r15,%r11
+	cfcmovnl	%r31,291(%r8,%rax,4)
+	cfcmovnl	291(%r8,%rax,4),%dx
+	cfcmovnl	291(%r8,%rax,4),%dx,%ax
+	cfcmovnl	291(%r8,%rax,4),%ecx
+	cfcmovnl	291(%r8,%rax,4),%ecx,%edx
+	cfcmovnl	291(%r8,%rax,4),%r31
+	cfcmovnl	291(%r8,%rax,4),%r31,%r15
+	cfcmovnle	%dx,%ax
+	cfcmovnle	%dx,%ax,%r31w
+	cfcmovnle	%dx,291(%r8,%rax,4)
+	cfcmovnle	%ecx,%edx
+	cfcmovnle	%ecx,%edx,%r10d
+	cfcmovnle	%ecx,291(%r8,%rax,4)
+	cfcmovnle	%r31,%r15
+	cfcmovnle	%r31,%r15,%r11
+	cfcmovnle	%r31,291(%r8,%rax,4)
+	cfcmovnle	291(%r8,%rax,4),%dx
+	cfcmovnle	291(%r8,%rax,4),%dx,%ax
+	cfcmovnle	291(%r8,%rax,4),%ecx
+	cfcmovnle	291(%r8,%rax,4),%ecx,%edx
+	cfcmovnle	291(%r8,%rax,4),%r31
+	cfcmovnle	291(%r8,%rax,4),%r31,%r15
+	cfcmovno	%dx,%ax
+	cfcmovno	%dx,%ax,%r31w
+	cfcmovno	%dx,291(%r8,%rax,4)
+	cfcmovno	%ecx,%edx
+	cfcmovno	%ecx,%edx,%r10d
+	cfcmovno	%ecx,291(%r8,%rax,4)
+	cfcmovno	%r31,%r15
+	cfcmovno	%r31,%r15,%r11
+	cfcmovno	%r31,291(%r8,%rax,4)
+	cfcmovno	291(%r8,%rax,4),%dx
+	cfcmovno	291(%r8,%rax,4),%dx,%ax
+	cfcmovno	291(%r8,%rax,4),%ecx
+	cfcmovno	291(%r8,%rax,4),%ecx,%edx
+	cfcmovno	291(%r8,%rax,4),%r31
+	cfcmovno	291(%r8,%rax,4),%r31,%r15
+	cfcmovnp	%dx,%ax
+	cfcmovnp	%dx,%ax,%r31w
+	cfcmovnp	%dx,291(%r8,%rax,4)
+	cfcmovnp	%ecx,%edx
+	cfcmovnp	%ecx,%edx,%r10d
+	cfcmovnp	%ecx,291(%r8,%rax,4)
+	cfcmovnp	%r31,%r15
+	cfcmovnp	%r31,%r15,%r11
+	cfcmovnp	%r31,291(%r8,%rax,4)
+	cfcmovnp	291(%r8,%rax,4),%dx
+	cfcmovnp	291(%r8,%rax,4),%dx,%ax
+	cfcmovnp	291(%r8,%rax,4),%ecx
+	cfcmovnp	291(%r8,%rax,4),%ecx,%edx
+	cfcmovnp	291(%r8,%rax,4),%r31
+	cfcmovnp	291(%r8,%rax,4),%r31,%r15
+	cfcmovns	%dx,%ax
+	cfcmovns	%dx,%ax,%r31w
+	cfcmovns	%dx,291(%r8,%rax,4)
+	cfcmovns	%ecx,%edx
+	cfcmovns	%ecx,%edx,%r10d
+	cfcmovns	%ecx,291(%r8,%rax,4)
+	cfcmovns	%r31,%r15
+	cfcmovns	%r31,%r15,%r11
+	cfcmovns	%r31,291(%r8,%rax,4)
+	cfcmovns	291(%r8,%rax,4),%dx
+	cfcmovns	291(%r8,%rax,4),%dx,%ax
+	cfcmovns	291(%r8,%rax,4),%ecx
+	cfcmovns	291(%r8,%rax,4),%ecx,%edx
+	cfcmovns	291(%r8,%rax,4),%r31
+	cfcmovns	291(%r8,%rax,4),%r31,%r15
+	cfcmovnz	%dx,%ax
+	cfcmovnz	%dx,%ax,%r31w
+	cfcmovnz	%dx,291(%r8,%rax,4)
+	cfcmovnz	%ecx,%edx
+	cfcmovnz	%ecx,%edx,%r10d
+	cfcmovnz	%ecx,291(%r8,%rax,4)
+	cfcmovnz	%r31,%r15
+	cfcmovnz	%r31,%r15,%r11
+	cfcmovnz	%r31,291(%r8,%rax,4)
+	cfcmovnz	291(%r8,%rax,4),%dx
+	cfcmovnz	291(%r8,%rax,4),%dx,%ax
+	cfcmovnz	291(%r8,%rax,4),%ecx
+	cfcmovnz	291(%r8,%rax,4),%ecx,%edx
+	cfcmovnz	291(%r8,%rax,4),%r31
+	cfcmovnz	291(%r8,%rax,4),%r31,%r15
+	cfcmovo	%dx,%ax
+	cfcmovo	%dx,%ax,%r31w
+	cfcmovo	%dx,291(%r8,%rax,4)
+	cfcmovo	%ecx,%edx
+	cfcmovo	%ecx,%edx,%r10d
+	cfcmovo	%ecx,291(%r8,%rax,4)
+	cfcmovo	%r31,%r15
+	cfcmovo	%r31,%r15,%r11
+	cfcmovo	%r31,291(%r8,%rax,4)
+	cfcmovo	291(%r8,%rax,4),%dx
+	cfcmovo	291(%r8,%rax,4),%dx,%ax
+	cfcmovo	291(%r8,%rax,4),%ecx
+	cfcmovo	291(%r8,%rax,4),%ecx,%edx
+	cfcmovo	291(%r8,%rax,4),%r31
+	cfcmovo	291(%r8,%rax,4),%r31,%r15
+	cfcmovp	%dx,%ax
+	cfcmovp	%dx,%ax,%r31w
+	cfcmovp	%dx,291(%r8,%rax,4)
+	cfcmovp	%ecx,%edx
+	cfcmovp	%ecx,%edx,%r10d
+	cfcmovp	%ecx,291(%r8,%rax,4)
+	cfcmovp	%r31,%r15
+	cfcmovp	%r31,%r15,%r11
+	cfcmovp	%r31,291(%r8,%rax,4)
+	cfcmovp	291(%r8,%rax,4),%dx
+	cfcmovp	291(%r8,%rax,4),%dx,%ax
+	cfcmovp	291(%r8,%rax,4),%ecx
+	cfcmovp	291(%r8,%rax,4),%ecx,%edx
+	cfcmovp	291(%r8,%rax,4),%r31
+	cfcmovp	291(%r8,%rax,4),%r31,%r15
+	cfcmovs	%dx,%ax
+	cfcmovs	%dx,%ax,%r31w
+	cfcmovs	%dx,291(%r8,%rax,4)
+	cfcmovs	%ecx,%edx
+	cfcmovs	%ecx,%edx,%r10d
+	cfcmovs	%ecx,291(%r8,%rax,4)
+	cfcmovs	%r31,%r15
+	cfcmovs	%r31,%r15,%r11
+	cfcmovs	%r31,291(%r8,%rax,4)
+	cfcmovs	291(%r8,%rax,4),%dx
+	cfcmovs	291(%r8,%rax,4),%dx,%ax
+	cfcmovs	291(%r8,%rax,4),%ecx
+	cfcmovs	291(%r8,%rax,4),%ecx,%edx
+	cfcmovs	291(%r8,%rax,4),%r31
+	cfcmovs	291(%r8,%rax,4),%r31,%r15
+	cfcmovz	%dx,%ax
+	cfcmovz	%dx,%ax,%r31w
+	cfcmovz	%dx,291(%r8,%rax,4)
+	cfcmovz	%ecx,%edx
+	cfcmovz	%ecx,%edx,%r10d
+	cfcmovz	%ecx,291(%r8,%rax,4)
+	cfcmovz	%r31,%r15
+	cfcmovz	%r31,%r15,%r11
+	cfcmovz	%r31,291(%r8,%rax,4)
+	cfcmovz	291(%r8,%rax,4),%dx
+	cfcmovz	291(%r8,%rax,4),%dx,%ax
+	cfcmovz	291(%r8,%rax,4),%ecx
+	cfcmovz	291(%r8,%rax,4),%ecx,%edx
+	cfcmovz	291(%r8,%rax,4),%r31
+	cfcmovz	291(%r8,%rax,4),%r31,%r15
+	cmovb	%dx,%ax,%r31w
+	cmovb	%ecx,%edx,%r10d
+	cmovb	%r31,%r15,%r11
+	cmovb	291(%r8,%rax,4),%dx,%ax
+	cmovb	291(%r8,%rax,4),%ecx,%edx
+	cmovb	291(%r8,%rax,4),%r31,%r15
+	cmovbe	%dx,%ax,%r31w
+	cmovbe	%ecx,%edx,%r10d
+	cmovbe	%r31,%r15,%r11
+	cmovbe	291(%r8,%rax,4),%dx,%ax
+	cmovbe	291(%r8,%rax,4),%ecx,%edx
+	cmovbe	291(%r8,%rax,4),%r31,%r15
+	cmovl	%dx,%ax,%r31w
+	cmovl	%ecx,%edx,%r10d
+	cmovl	%r31,%r15,%r11
+	cmovl	291(%r8,%rax,4),%dx,%ax
+	cmovl	291(%r8,%rax,4),%ecx,%edx
+	cmovl	291(%r8,%rax,4),%r31,%r15
+	cmovle	%dx,%ax,%r31w
+	cmovle	%ecx,%edx,%r10d
+	cmovle	%r31,%r15,%r11
+	cmovle	291(%r8,%rax,4),%dx,%ax
+	cmovle	291(%r8,%rax,4),%ecx,%edx
+	cmovle	291(%r8,%rax,4),%r31,%r15
+	cmovnb	%dx,%ax,%r31w
+	cmovnb	%ecx,%edx,%r10d
+	cmovnb	%r31,%r15,%r11
+	cmovnb	291(%r8,%rax,4),%dx,%ax
+	cmovnb	291(%r8,%rax,4),%ecx,%edx
+	cmovnb	291(%r8,%rax,4),%r31,%r15
+	cmovnbe	%dx,%ax,%r31w
+	cmovnbe	%ecx,%edx,%r10d
+	cmovnbe	%r31,%r15,%r11
+	cmovnbe	291(%r8,%rax,4),%dx,%ax
+	cmovnbe	291(%r8,%rax,4),%ecx,%edx
+	cmovnbe	291(%r8,%rax,4),%r31,%r15
+	cmovnl	%dx,%ax,%r31w
+	cmovnl	%ecx,%edx,%r10d
+	cmovnl	%r31,%r15,%r11
+	cmovnl	291(%r8,%rax,4),%dx,%ax
+	cmovnl	291(%r8,%rax,4),%ecx,%edx
+	cmovnl	291(%r8,%rax,4),%r31,%r15
+	cmovnle	%dx,%ax,%r31w
+	cmovnle	%ecx,%edx,%r10d
+	cmovnle	%r31,%r15,%r11
+	cmovnle	291(%r8,%rax,4),%dx,%ax
+	cmovnle	291(%r8,%rax,4),%ecx,%edx
+	cmovnle	291(%r8,%rax,4),%r31,%r15
+	cmovno	%dx,%ax,%r31w
+	cmovno	%ecx,%edx,%r10d
+	cmovno	%r31,%r15,%r11
+	cmovno	291(%r8,%rax,4),%dx,%ax
+	cmovno	291(%r8,%rax,4),%ecx,%edx
+	cmovno	291(%r8,%rax,4),%r31,%r15
+	cmovnp	%dx,%ax,%r31w
+	cmovnp	%ecx,%edx,%r10d
+	cmovnp	%r31,%r15,%r11
+	cmovnp	291(%r8,%rax,4),%dx,%ax
+	cmovnp	291(%r8,%rax,4),%ecx,%edx
+	cmovnp	291(%r8,%rax,4),%r31,%r15
+	cmovns	%dx,%ax,%r31w
+	cmovns	%ecx,%edx,%r10d
+	cmovns	%r31,%r15,%r11
+	cmovns	291(%r8,%rax,4),%dx,%ax
+	cmovns	291(%r8,%rax,4),%ecx,%edx
+	cmovns	291(%r8,%rax,4),%r31,%r15
+	cmovnz	%dx,%ax,%r31w
+	cmovnz	%ecx,%edx,%r10d
+	cmovnz	%r31,%r15,%r11
+	cmovnz	291(%r8,%rax,4),%dx,%ax
+	cmovnz	291(%r8,%rax,4),%ecx,%edx
+	cmovnz	291(%r8,%rax,4),%r31,%r15
+	cmovo	%dx,%ax,%r31w
+	cmovo	%ecx,%edx,%r10d
+	cmovo	%r31,%r15,%r11
+	cmovo	291(%r8,%rax,4),%dx,%ax
+	cmovo	291(%r8,%rax,4),%ecx,%edx
+	cmovo	291(%r8,%rax,4),%r31,%r15
+	cmovp	%dx,%ax,%r31w
+	cmovp	%ecx,%edx,%r10d
+	cmovp	%r31,%r15,%r11
+	cmovp	291(%r8,%rax,4),%dx,%ax
+	cmovp	291(%r8,%rax,4),%ecx,%edx
+	cmovp	291(%r8,%rax,4),%r31,%r15
+	cmovs	%dx,%ax,%r31w
+	cmovs	%ecx,%edx,%r10d
+	cmovs	%r31,%r15,%r11
+	cmovs	291(%r8,%rax,4),%dx,%ax
+	cmovs	291(%r8,%rax,4),%ecx,%edx
+	cmovs	291(%r8,%rax,4),%r31,%r15
+	cmovz	%dx,%ax,%r31w
+	cmovz	%ecx,%edx,%r10d
+	cmovz	%r31,%r15,%r11
+	cmovz	291(%r8,%rax,4),%dx,%ax
+	cmovz	291(%r8,%rax,4),%ecx,%edx
+	cmovz	291(%r8,%rax,4),%r31,%r15
+
+	.intel_syntax noprefix
+	cfcmovb	ax,dx
+	cfcmovb.s	ax,dx
+	cfcmovb	r31w,ax,dx
+	cfcmovb	WORD PTR [r8+rax*4+291],dx
+	cfcmovb	edx,ecx
+	cfcmovb	r10d,edx,ecx
+	cfcmovb	DWORD PTR [r8+rax*4+291],ecx
+	cfcmovb	r15,r31
+	cfcmovb	r11,r15,r31
+	cfcmovb	QWORD PTR [r8+rax*4+291],r31
+	cfcmovb	dx,WORD PTR [r8+rax*4+291]
+	cfcmovb	ax,dx,WORD PTR [r8+rax*4+291]
+	cfcmovb	ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovb	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovb	r31,QWORD PTR [r8+rax*4+291]
+	cfcmovb	r15,r31,QWORD PTR [r8+rax*4+291]
+	cfcmovbe	ax,dx
+	cfcmovbe	r31w,ax,dx
+	cfcmovbe	WORD PTR [r8+rax*4+291],dx
+	cfcmovbe	edx,ecx
+	cfcmovbe	r10d,edx,ecx
+	cfcmovbe	DWORD PTR [r8+rax*4+291],ecx
+	cfcmovbe	r15,r31
+	cfcmovbe	r11,r15,r31
+	cfcmovbe	QWORD PTR [r8+rax*4+291],r31
+	cfcmovbe	dx,WORD PTR [r8+rax*4+291]
+	cfcmovbe	ax,dx,WORD PTR [r8+rax*4+291]
+	cfcmovbe	ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovbe	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovbe	r31,QWORD PTR [r8+rax*4+291]
+	cfcmovbe	r15,r31,QWORD PTR [r8+rax*4+291]
+	cfcmovl	ax,dx
+	cfcmovl	r31w,ax,dx
+	cfcmovl	WORD PTR [r8+rax*4+291],dx
+	cfcmovl	edx,ecx
+	cfcmovl	r10d,edx,ecx
+	cfcmovl	DWORD PTR [r8+rax*4+291],ecx
+	cfcmovl	r15,r31
+	cfcmovl	r11,r15,r31
+	cfcmovl	QWORD PTR [r8+rax*4+291],r31
+	cfcmovl	dx,WORD PTR [r8+rax*4+291]
+	cfcmovl	ax,dx,WORD PTR [r8+rax*4+291]
+	cfcmovl	ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovl	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovl	r31,QWORD PTR [r8+rax*4+291]
+	cfcmovl	r15,r31,QWORD PTR [r8+rax*4+291]
+	cfcmovle	ax,dx
+	cfcmovle	r31w,ax,dx
+	cfcmovle	WORD PTR [r8+rax*4+291],dx
+	cfcmovle	edx,ecx
+	cfcmovle	r10d,edx,ecx
+	cfcmovle	DWORD PTR [r8+rax*4+291],ecx
+	cfcmovle	r15,r31
+	cfcmovle	r11,r15,r31
+	cfcmovle	QWORD PTR [r8+rax*4+291],r31
+	cfcmovle	dx,WORD PTR [r8+rax*4+291]
+	cfcmovle	ax,dx,WORD PTR [r8+rax*4+291]
+	cfcmovle	ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovle	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovle	r31,QWORD PTR [r8+rax*4+291]
+	cfcmovle	r15,r31,QWORD PTR [r8+rax*4+291]
+	cfcmovnb	ax,dx
+	cfcmovnb	r31w,ax,dx
+	cfcmovnb	WORD PTR [r8+rax*4+291],dx
+	cfcmovnb	edx,ecx
+	cfcmovnb	r10d,edx,ecx
+	cfcmovnb	DWORD PTR [r8+rax*4+291],ecx
+	cfcmovnb	r15,r31
+	cfcmovnb	r11,r15,r31
+	cfcmovnb	QWORD PTR [r8+rax*4+291],r31
+	cfcmovnb	dx,WORD PTR [r8+rax*4+291]
+	cfcmovnb	ax,dx,WORD PTR [r8+rax*4+291]
+	cfcmovnb	ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovnb	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovnb	r31,QWORD PTR [r8+rax*4+291]
+	cfcmovnb	r15,r31,QWORD PTR [r8+rax*4+291]
+	cfcmovnbe	ax,dx
+	cfcmovnbe	r31w,ax,dx
+	cfcmovnbe	WORD PTR [r8+rax*4+291],dx
+	cfcmovnbe	edx,ecx
+	cfcmovnbe	r10d,edx,ecx
+	cfcmovnbe	DWORD PTR [r8+rax*4+291],ecx
+	cfcmovnbe	r15,r31
+	cfcmovnbe	r11,r15,r31
+	cfcmovnbe	QWORD PTR [r8+rax*4+291],r31
+	cfcmovnbe	dx,WORD PTR [r8+rax*4+291]
+	cfcmovnbe	ax,dx,WORD PTR [r8+rax*4+291]
+	cfcmovnbe	ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovnbe	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovnbe	r31,QWORD PTR [r8+rax*4+291]
+	cfcmovnbe	r15,r31,QWORD PTR [r8+rax*4+291]
+	cfcmovnl	ax,dx
+	cfcmovnl	r31w,ax,dx
+	cfcmovnl	WORD PTR [r8+rax*4+291],dx
+	cfcmovnl	edx,ecx
+	cfcmovnl	r10d,edx,ecx
+	cfcmovnl	DWORD PTR [r8+rax*4+291],ecx
+	cfcmovnl	r15,r31
+	cfcmovnl	r11,r15,r31
+	cfcmovnl	QWORD PTR [r8+rax*4+291],r31
+	cfcmovnl	dx,WORD PTR [r8+rax*4+291]
+	cfcmovnl	ax,dx,WORD PTR [r8+rax*4+291]
+	cfcmovnl	ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovnl	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovnl	r31,QWORD PTR [r8+rax*4+291]
+	cfcmovnl	r15,r31,QWORD PTR [r8+rax*4+291]
+	cfcmovnle	ax,dx
+	cfcmovnle	r31w,ax,dx
+	cfcmovnle	WORD PTR [r8+rax*4+291],dx
+	cfcmovnle	edx,ecx
+	cfcmovnle	r10d,edx,ecx
+	cfcmovnle	DWORD PTR [r8+rax*4+291],ecx
+	cfcmovnle	r15,r31
+	cfcmovnle	r11,r15,r31
+	cfcmovnle	QWORD PTR [r8+rax*4+291],r31
+	cfcmovnle	dx,WORD PTR [r8+rax*4+291]
+	cfcmovnle	ax,dx,WORD PTR [r8+rax*4+291]
+	cfcmovnle	ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovnle	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovnle	r31,QWORD PTR [r8+rax*4+291]
+	cfcmovnle	r15,r31,QWORD PTR [r8+rax*4+291]
+	cfcmovno	ax,dx
+	cfcmovno	r31w,ax,dx
+	cfcmovno	WORD PTR [r8+rax*4+291],dx
+	cfcmovno	edx,ecx
+	cfcmovno	r10d,edx,ecx
+	cfcmovno	DWORD PTR [r8+rax*4+291],ecx
+	cfcmovno	r15,r31
+	cfcmovno	r11,r15,r31
+	cfcmovno	QWORD PTR [r8+rax*4+291],r31
+	cfcmovno	dx,WORD PTR [r8+rax*4+291]
+	cfcmovno	ax,dx,WORD PTR [r8+rax*4+291]
+	cfcmovno	ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovno	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovno	r31,QWORD PTR [r8+rax*4+291]
+	cfcmovno	r15,r31,QWORD PTR [r8+rax*4+291]
+	cfcmovnp	ax,dx
+	cfcmovnp	r31w,ax,dx
+	cfcmovnp	WORD PTR [r8+rax*4+291],dx
+	cfcmovnp	edx,ecx
+	cfcmovnp	r10d,edx,ecx
+	cfcmovnp	DWORD PTR [r8+rax*4+291],ecx
+	cfcmovnp	r15,r31
+	cfcmovnp	r11,r15,r31
+	cfcmovnp	QWORD PTR [r8+rax*4+291],r31
+	cfcmovnp	dx,WORD PTR [r8+rax*4+291]
+	cfcmovnp	ax,dx,WORD PTR [r8+rax*4+291]
+	cfcmovnp	ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovnp	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovnp	r31,QWORD PTR [r8+rax*4+291]
+	cfcmovnp	r15,r31,QWORD PTR [r8+rax*4+291]
+	cfcmovns	ax,dx
+	cfcmovns	r31w,ax,dx
+	cfcmovns	WORD PTR [r8+rax*4+291],dx
+	cfcmovns	edx,ecx
+	cfcmovns	r10d,edx,ecx
+	cfcmovns	DWORD PTR [r8+rax*4+291],ecx
+	cfcmovns	r15,r31
+	cfcmovns	r11,r15,r31
+	cfcmovns	QWORD PTR [r8+rax*4+291],r31
+	cfcmovns	dx,WORD PTR [r8+rax*4+291]
+	cfcmovns	ax,dx,WORD PTR [r8+rax*4+291]
+	cfcmovns	ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovns	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovns	r31,QWORD PTR [r8+rax*4+291]
+	cfcmovns	r15,r31,QWORD PTR [r8+rax*4+291]
+	cfcmovnz	ax,dx
+	cfcmovnz	r31w,ax,dx
+	cfcmovnz	WORD PTR [r8+rax*4+291],dx
+	cfcmovnz	edx,ecx
+	cfcmovnz	r10d,edx,ecx
+	cfcmovnz	DWORD PTR [r8+rax*4+291],ecx
+	cfcmovnz	r15,r31
+	cfcmovnz	r11,r15,r31
+	cfcmovnz	QWORD PTR [r8+rax*4+291],r31
+	cfcmovnz	dx,WORD PTR [r8+rax*4+291]
+	cfcmovnz	ax,dx,WORD PTR [r8+rax*4+291]
+	cfcmovnz	ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovnz	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovnz	r31,QWORD PTR [r8+rax*4+291]
+	cfcmovnz	r15,r31,QWORD PTR [r8+rax*4+291]
+	cfcmovo	ax,dx
+	cfcmovo	r31w,ax,dx
+	cfcmovo	WORD PTR [r8+rax*4+291],dx
+	cfcmovo	edx,ecx
+	cfcmovo	r10d,edx,ecx
+	cfcmovo	DWORD PTR [r8+rax*4+291],ecx
+	cfcmovo	r15,r31
+	cfcmovo	r11,r15,r31
+	cfcmovo	QWORD PTR [r8+rax*4+291],r31
+	cfcmovo	dx,WORD PTR [r8+rax*4+291]
+	cfcmovo	ax,dx,WORD PTR [r8+rax*4+291]
+	cfcmovo	ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovo	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovo	r31,QWORD PTR [r8+rax*4+291]
+	cfcmovo	r15,r31,QWORD PTR [r8+rax*4+291]
+	cfcmovp	ax,dx
+	cfcmovp	r31w,ax,dx
+	cfcmovp	WORD PTR [r8+rax*4+291],dx
+	cfcmovp	edx,ecx
+	cfcmovp	r10d,edx,ecx
+	cfcmovp	DWORD PTR [r8+rax*4+291],ecx
+	cfcmovp	r15,r31
+	cfcmovp	r11,r15,r31
+	cfcmovp	QWORD PTR [r8+rax*4+291],r31
+	cfcmovp	dx,WORD PTR [r8+rax*4+291]
+	cfcmovp	ax,dx,WORD PTR [r8+rax*4+291]
+	cfcmovp	ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovp	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovp	r31,QWORD PTR [r8+rax*4+291]
+	cfcmovp	r15,r31,QWORD PTR [r8+rax*4+291]
+	cfcmovs	ax,dx
+	cfcmovs	r31w,ax,dx
+	cfcmovs	WORD PTR [r8+rax*4+291],dx
+	cfcmovs	edx,ecx
+	cfcmovs	r10d,edx,ecx
+	cfcmovs	DWORD PTR [r8+rax*4+291],ecx
+	cfcmovs	r15,r31
+	cfcmovs	r11,r15,r31
+	cfcmovs	QWORD PTR [r8+rax*4+291],r31
+	cfcmovs	dx,WORD PTR [r8+rax*4+291]
+	cfcmovs	ax,dx,WORD PTR [r8+rax*4+291]
+	cfcmovs	ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovs	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovs	r31,QWORD PTR [r8+rax*4+291]
+	cfcmovs	r15,r31,QWORD PTR [r8+rax*4+291]
+	cfcmovz	ax,dx
+	cfcmovz	r31w,ax,dx
+	cfcmovz	WORD PTR [r8+rax*4+291],dx
+	cfcmovz	edx,ecx
+	cfcmovz	r10d,edx,ecx
+	cfcmovz	DWORD PTR [r8+rax*4+291],ecx
+	cfcmovz	r15,r31
+	cfcmovz	r11,r15,r31
+	cfcmovz	QWORD PTR [r8+rax*4+291],r31
+	cfcmovz	dx,WORD PTR [r8+rax*4+291]
+	cfcmovz	ax,dx,WORD PTR [r8+rax*4+291]
+	cfcmovz	ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovz	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cfcmovz	r31,QWORD PTR [r8+rax*4+291]
+	cfcmovz	r15,r31,QWORD PTR [r8+rax*4+291]
+	cmovb	r31w,ax,dx
+	cmovb	r10d,edx,ecx
+	cmovb	r11,r15,r31
+	cmovb	ax,dx,WORD PTR [r8+rax*4+291]
+	cmovb	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cmovb	r15,r31,QWORD PTR [r8+rax*4+291]
+	cmovbe	r31w,ax,dx
+	cmovbe	r10d,edx,ecx
+	cmovbe	r11,r15,r31
+	cmovbe	ax,dx,WORD PTR [r8+rax*4+291]
+	cmovbe	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cmovbe	r15,r31,QWORD PTR [r8+rax*4+291]
+	cmovl	r31w,ax,dx
+	cmovl	r10d,edx,ecx
+	cmovl	r11,r15,r31
+	cmovl	ax,dx,WORD PTR [r8+rax*4+291]
+	cmovl	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cmovl	r15,r31,QWORD PTR [r8+rax*4+291]
+	cmovle	r31w,ax,dx
+	cmovle	r10d,edx,ecx
+	cmovle	r11,r15,r31
+	cmovle	ax,dx,WORD PTR [r8+rax*4+291]
+	cmovle	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cmovle	r15,r31,QWORD PTR [r8+rax*4+291]
+	cmovnb	r31w,ax,dx
+	cmovnb	r10d,edx,ecx
+	cmovnb	r11,r15,r31
+	cmovnb	ax,dx,WORD PTR [r8+rax*4+291]
+	cmovnb	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cmovnb	r15,r31,QWORD PTR [r8+rax*4+291]
+	cmovnbe	r31w,ax,dx
+	cmovnbe	r10d,edx,ecx
+	cmovnbe	r11,r15,r31
+	cmovnbe	ax,dx,WORD PTR [r8+rax*4+291]
+	cmovnbe	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cmovnbe	r15,r31,QWORD PTR [r8+rax*4+291]
+	cmovnl	r31w,ax,dx
+	cmovnl	r10d,edx,ecx
+	cmovnl	r11,r15,r31
+	cmovnl	ax,dx,WORD PTR [r8+rax*4+291]
+	cmovnl	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cmovnl	r15,r31,QWORD PTR [r8+rax*4+291]
+	cmovnle	r31w,ax,dx
+	cmovnle	r10d,edx,ecx
+	cmovnle	r11,r15,r31
+	cmovnle	ax,dx,WORD PTR [r8+rax*4+291]
+	cmovnle	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cmovnle	r15,r31,QWORD PTR [r8+rax*4+291]
+	cmovno	r31w,ax,dx
+	cmovno	r10d,edx,ecx
+	cmovno	r11,r15,r31
+	cmovno	ax,dx,WORD PTR [r8+rax*4+291]
+	cmovno	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cmovno	r15,r31,QWORD PTR [r8+rax*4+291]
+	cmovnp	r31w,ax,dx
+	cmovnp	r10d,edx,ecx
+	cmovnp	r11,r15,r31
+	cmovnp	ax,dx,WORD PTR [r8+rax*4+291]
+	cmovnp	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cmovnp	r15,r31,QWORD PTR [r8+rax*4+291]
+	cmovns	r31w,ax,dx
+	cmovns	r10d,edx,ecx
+	cmovns	r11,r15,r31
+	cmovns	ax,dx,WORD PTR [r8+rax*4+291]
+	cmovns	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cmovns	r15,r31,QWORD PTR [r8+rax*4+291]
+	cmovnz	r31w,ax,dx
+	cmovnz	r10d,edx,ecx
+	cmovnz	r11,r15,r31
+	cmovnz	ax,dx,WORD PTR [r8+rax*4+291]
+	cmovnz	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cmovnz	r15,r31,QWORD PTR [r8+rax*4+291]
+	cmovo	r31w,ax,dx
+	cmovo	r10d,edx,ecx
+	cmovo	r11,r15,r31
+	cmovo	ax,dx,WORD PTR [r8+rax*4+291]
+	cmovo	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cmovo	r15,r31,QWORD PTR [r8+rax*4+291]
+	cmovp	r31w,ax,dx
+	cmovp	r10d,edx,ecx
+	cmovp	r11,r15,r31
+	cmovp	ax,dx,WORD PTR [r8+rax*4+291]
+	cmovp	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cmovp	r15,r31,QWORD PTR [r8+rax*4+291]
+	cmovs	r31w,ax,dx
+	cmovs	r10d,edx,ecx
+	cmovs	r11,r15,r31
+	cmovs	ax,dx,WORD PTR [r8+rax*4+291]
+	cmovs	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cmovs	r15,r31,QWORD PTR [r8+rax*4+291]
+	cmovz	r31w,ax,dx
+	cmovz	r10d,edx,ecx
+	cmovz	r11,r15,r31
+	cmovz	ax,dx,WORD PTR [r8+rax*4+291]
+	cmovz	edx,ecx,DWORD PTR [r8+rax*4+291]
+	cmovz	r15,r31,QWORD PTR [r8+rax*4+291]
diff --git a/gas/testsuite/gas/i386/x86-64.exp b/gas/testsuite/gas/i386/x86-64.exp
index a8d49cefe8c..c0d65e1a723 100644
--- a/gas/testsuite/gas/i386/x86-64.exp
+++ b/gas/testsuite/gas/i386/x86-64.exp
@@ -356,6 +356,8 @@  run_list_test "x86-64-apx-push2pop2-inval"
 run_dump_test "x86-64-apx-ccmp-ctest"
 run_dump_test "x86-64-apx-ccmp-ctest-intel"
 run_list_test "x86-64-apx-ccmp-ctest-inval"
+run_dump_test "x86-64-apx-cfcmov"
+run_dump_test "x86-64-apx-cfcmov-intel"
 run_dump_test "x86-64-apx-pushp-popp"
 run_dump_test "x86-64-apx-pushp-popp-intel"
 run_list_test "x86-64-apx-pushp-popp-inval"
diff --git a/opcodes/i386-dis-evex-prefix.h b/opcodes/i386-dis-evex-prefix.h
index 0eba11d87de..a3bc25a38c7 100644
--- a/opcodes/i386-dis-evex-prefix.h
+++ b/opcodes/i386-dis-evex-prefix.h
@@ -340,9 +340,9 @@ 
   },
   /* PREFIX_EVEX_MAP4_4x */
   {
-    { "%CFcmov%CCS",	{ VexGv, Gv, Ev }, 0 },
+    { "%CFcmov%CCS",	{ VexGv, { CFCMOV_Fixup_op0, v_mode }, { CFCMOV_Fixup_op1, v_mode } }, 0 },
     { Bad_Opcode },
-    { "%CFcmov%CCS",	{ VexGv, Gv, Ev }, 0 },
+    { "%CFcmov%CCS",	{ VexGv, { CFCMOV_Fixup_op0, v_mode }, { CFCMOV_Fixup_op1, v_mode } }, 0 },
     { "set%ZU%CC",	{ Eb }, 0 },
   },
   /* PREFIX_EVEX_MAP4_F0 */
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 24c33047001..ce08279fa40 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -107,6 +107,8 @@  static bool DistinctDest_Fixup (instr_info *, int, int);
 static bool PREFETCHI_Fixup (instr_info *, int, int);
 static bool PUSH2_POP2_Fixup (instr_info *, int, int);
 static bool JMPABS_Fixup (instr_info *, int, int);
+static bool CFCMOV_Fixup_op0 (instr_info *, int, int);
+static bool CFCMOV_Fixup_op1 (instr_info *, int, int);
 
 static void ATTRIBUTE_PRINTF_3 i386_dis_printf (const disassemble_info *,
 						enum disassembler_style,
@@ -4042,7 +4044,7 @@  static const struct dis386 prefix_table[][4] = {
     { "vbcstnebf162ps", { XM, Mw }, 0 },
     { "vbcstnesh2ps", { XM, Mw }, 0 },
   },
- 
+
   /* PREFIX_VEX_0F38D2_W_0 */
   {
     { "vpdpwuud",	{ XM, Vex, EXx }, 0 },
@@ -10565,7 +10567,17 @@  putop (instr_info *ins, const char *in_template, int sizeflag)
 		}
 	    }
 	  else if (l == 1 && last[0] == 'C')
-	    break;
+	    {
+	      if (ins->vex.nd && !ins->vex.nf)
+		break;
+	      else
+		{
+		  *ins->obufp++ = 'c';
+		  *ins->obufp++ = 'f';
+		  /* Skip printing {evex} */
+		  evex_printed = true;
+		}
+	    }
 	  else if (l == 1 && last[0] == 'N')
 	    {
 	      if (ins->vex.nf)
@@ -14046,3 +14058,39 @@  JMPABS_Fixup (instr_info *ins, int bytemode, int sizeflag)
     return OP_IMREG (ins, bytemode, sizeflag);
   return OP_OFF64 (ins, bytemode, sizeflag);
 }
+
+static bool
+CFCMOV_Fixup_op0 (instr_info *ins, int bytemode, int sizeflag)
+{
+  /* EVEX.NF is used as a direction bit in the 2-operand case to reverse the
+     source and destination operands. */
+  if (!ins->vex.nd && ins->vex.nf)
+    {
+      bytemode = v_swap_mode;
+      return OP_E (ins, bytemode, sizeflag);
+    }
+  else
+    {
+      return OP_G (ins, bytemode, sizeflag);
+    }
+}
+
+static bool
+CFCMOV_Fixup_op1 (instr_info *ins, int bytemode, int sizeflag)
+{
+  /* EVEX.NF is used as a direction bit in the 2-operand case to reverse the
+     source and destination operands. */
+  if (!ins->vex.nd && ins->vex.nf)
+    {
+      /* These bits have been consumed and should be cleared.  */
+      ins->vex.nf = false;
+      ins->vex.mask_register_specifier = 0;
+      return OP_G (ins, bytemode, sizeflag);
+    }
+  else
+    {
+      ins->vex.nf = false;
+      ins->vex.mask_register_specifier = 0;
+      return OP_E (ins, bytemode, sizeflag);
+    }
+}
diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl
index e365f063142..7a1055a42f1 100644
--- a/opcodes/i386-opc.tbl
+++ b/opcodes/i386-opc.tbl
@@ -989,6 +989,10 @@  ud0, 0xfff, i186, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Un
 cmov<cc>, 0x4<cc:opc>, CMOV&APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64 }
 cmov<cc>, 0xf4<cc:opc>, CMOV, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
 
+cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4|NF, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64 }
+cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F, Load|Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4|NF, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Unspecified|BaseIndex }
+
 fcmovb, 0xda/0, i687, Modrm|NoSuf, { FloatReg, FloatAcc }
 fcmovnae, 0xda/0, i687, Modrm|NoSuf, { FloatReg, FloatAcc }
 fcmove, 0xda/1, i687, Modrm|NoSuf, { FloatReg, FloatAcc }