aboutsummaryrefslogtreecommitdiff
path: root/gas/testsuite
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2024-06-28 08:24:45 +0200
committerJan Beulich <jbeulich@suse.com>2024-06-28 08:24:45 +0200
commit2513312930b2b8a0b50fb681f2781372cce3c2f6 (patch)
tree3f7c66674e212d581fa147903114aa3cef58d30e /gas/testsuite
parent7add9939175aa71faa37c40dcedcb9190e3b37d8 (diff)
downloadbinutils-2513312930b2b8a0b50fb681f2781372cce3c2f6.zip
binutils-2513312930b2b8a0b50fb681f2781372cce3c2f6.tar.gz
binutils-2513312930b2b8a0b50fb681f2781372cce3c2f6.tar.bz2
x86/APX: apply NDD-to-legacy transformation to further CMOVcc forms
With both sources being registers, these insns are almost commutative; the only extra adjustment needed is inversion of the encoded condition.
Diffstat (limited to 'gas/testsuite')
-rw-r--r--gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.d16
-rw-r--r--gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.s16
2 files changed, 32 insertions, 0 deletions
diff --git a/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.d b/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.d
index 795dfcf..7932b0e 100644
--- a/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.d
+++ b/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.d
@@ -118,6 +118,22 @@ Disassembly of section .text:
\s*[a-f0-9]+:\s*67 0f 4d 90 90 90 90 90 cmovge -0x6f6f6f70\(%eax\),%edx
\s*[a-f0-9]+:\s*67 0f 4e 90 90 90 90 90 cmovle -0x6f6f6f70\(%eax\),%edx
\s*[a-f0-9]+:\s*67 0f 4f 90 90 90 90 90 cmovg -0x6f6f6f70\(%eax\),%edx
+\s*[a-f0-9]+:\s*0f 41 d1 cmovno %ecx,%edx
+\s*[a-f0-9]+:\s*0f 40 d1 cmovo %ecx,%edx
+\s*[a-f0-9]+:\s*0f 43 d1 cmovae %ecx,%edx
+\s*[a-f0-9]+:\s*0f 42 d1 cmovb %ecx,%edx
+\s*[a-f0-9]+:\s*0f 45 d1 cmovne %ecx,%edx
+\s*[a-f0-9]+:\s*0f 44 d1 cmove %ecx,%edx
+\s*[a-f0-9]+:\s*0f 47 d1 cmova %ecx,%edx
+\s*[a-f0-9]+:\s*0f 46 d1 cmovbe %ecx,%edx
+\s*[a-f0-9]+:\s*0f 49 d1 cmovns %ecx,%edx
+\s*[a-f0-9]+:\s*0f 48 d1 cmovs %ecx,%edx
+\s*[a-f0-9]+:\s*0f 4b d1 cmovnp %ecx,%edx
+\s*[a-f0-9]+:\s*0f 4a d1 cmovp %ecx,%edx
+\s*[a-f0-9]+:\s*0f 4d d1 cmovge %ecx,%edx
+\s*[a-f0-9]+:\s*0f 4c d1 cmovl %ecx,%edx
+\s*[a-f0-9]+:\s*0f 4f d1 cmovg %ecx,%edx
+\s*[a-f0-9]+:\s*0f 4e d1 cmovle %ecx,%edx
\s*[a-f0-9]+:\s*62 f4 7d 08 60 c0 movbe %ax,%ax
\s*[a-f0-9]+:\s*49 0f c8 bswap %r8
\s*[a-f0-9]+:\s*d5 98 c8 bswap %r16
diff --git a/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.s b/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.s
index bf75e64..7a2766a 100644
--- a/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.s
+++ b/gas/testsuite/gas/i386/x86-64-apx-ndd-optimize.s
@@ -112,6 +112,22 @@ cmovl 0x90909090(%eax),%edx,%edx
cmovge 0x90909090(%eax),%edx,%edx
cmovle 0x90909090(%eax),%edx,%edx
cmovg 0x90909090(%eax),%edx,%edx
+cmovo %edx,%ecx,%edx
+cmovno %edx,%ecx,%edx
+cmovc %edx,%ecx,%edx
+cmovnc %edx,%ecx,%edx
+cmovz %edx,%ecx,%edx
+cmovnz %edx,%ecx,%edx
+cmovna %edx,%ecx,%edx
+cmovnbe %edx,%ecx,%edx
+cmovs %edx,%ecx,%edx
+cmovns %edx,%ecx,%edx
+cmovpe %edx,%ecx,%edx
+cmovpo %edx,%ecx,%edx
+cmovnge %edx,%ecx,%edx
+cmovnl %edx,%ecx,%edx
+cmovng %edx,%ecx,%edx
+cmovnle %edx,%ecx,%edx
movbe %ax,%ax
movbe %r8,%r8
movbe %r16,%r16