aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlice Carlotti <alice.carlotti@arm.com>2025-04-20 23:11:29 +0100
committerAlice Carlotti <alice.carlotti@arm.com>2025-05-09 20:27:21 +0100
commit87d10eecf9db0e77948e701387111d20c1211da0 (patch)
treea99e942d01c8d1d3554ebb8ff53a542bdf1dbb17
parenta240a27f3aab64a4a611817b0d03f8798feb52d8 (diff)
downloadbinutils-87d10eecf9db0e77948e701387111d20c1211da0.zip
binutils-87d10eecf9db0e77948e701387111d20c1211da0.tar.gz
binutils-87d10eecf9db0e77948e701387111d20c1211da0.tar.bz2
aarch64: Add new test conditional-compare.d
The register form of ccmp was already tested.
-rw-r--r--gas/testsuite/gas/aarch64/conditional-compare.d77
-rw-r--r--gas/testsuite/gas/aarch64/conditional-compare.s76
2 files changed, 153 insertions, 0 deletions
diff --git a/gas/testsuite/gas/aarch64/conditional-compare.d b/gas/testsuite/gas/aarch64/conditional-compare.d
new file mode 100644
index 0000000..294e0c9
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/conditional-compare.d
@@ -0,0 +1,77 @@
+#as: -march=armv8-a
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+ *[0-9a-f]+: 3a400800 ccmn w0, #0x0, #0x0, eq // eq = none
+ *[0-9a-f]+: 3a400be0 ccmn wzr, #0x0, #0x0, eq // eq = none
+ *[0-9a-f]+: 3a5f0800 ccmn w0, #0x1f, #0x0, eq // eq = none
+ *[0-9a-f]+: 3a40080f ccmn w0, #0x0, #0xf, eq // eq = none
+ *[0-9a-f]+: 3a40f800 ccmn w0, #0x0, #0x0, nv
+ *[0-9a-f]+: ba400800 ccmn x0, #0x0, #0x0, eq // eq = none
+ *[0-9a-f]+: ba400be0 ccmn xzr, #0x0, #0x0, eq // eq = none
+ *[0-9a-f]+: ba5f0800 ccmn x0, #0x1f, #0x0, eq // eq = none
+ *[0-9a-f]+: ba40080f ccmn x0, #0x0, #0xf, eq // eq = none
+ *[0-9a-f]+: ba40f800 ccmn x0, #0x0, #0x0, nv
+ *[0-9a-f]+: 7a400800 ccmp w0, #0x0, #0x0, eq // eq = none
+ *[0-9a-f]+: 7a400be0 ccmp wzr, #0x0, #0x0, eq // eq = none
+ *[0-9a-f]+: 7a5f0800 ccmp w0, #0x1f, #0x0, eq // eq = none
+ *[0-9a-f]+: 7a40080f ccmp w0, #0x0, #0xf, eq // eq = none
+ *[0-9a-f]+: 7a40f800 ccmp w0, #0x0, #0x0, nv
+ *[0-9a-f]+: fa400800 ccmp x0, #0x0, #0x0, eq // eq = none
+ *[0-9a-f]+: fa400be0 ccmp xzr, #0x0, #0x0, eq // eq = none
+ *[0-9a-f]+: fa5f0800 ccmp x0, #0x1f, #0x0, eq // eq = none
+ *[0-9a-f]+: fa40080f ccmp x0, #0x0, #0xf, eq // eq = none
+ *[0-9a-f]+: fa40f800 ccmp x0, #0x0, #0x0, nv
+ *[0-9a-f]+: 3a400000 ccmn w0, w0, #0x0, eq // eq = none
+ *[0-9a-f]+: 3a4003e0 ccmn wzr, w0, #0x0, eq // eq = none
+ *[0-9a-f]+: 3a5f0000 ccmn w0, wzr, #0x0, eq // eq = none
+ *[0-9a-f]+: 3a40000f ccmn w0, w0, #0xf, eq // eq = none
+ *[0-9a-f]+: 3a40f000 ccmn w0, w0, #0x0, nv
+ *[0-9a-f]+: ba400000 ccmn x0, x0, #0x0, eq // eq = none
+ *[0-9a-f]+: ba4003e0 ccmn xzr, x0, #0x0, eq // eq = none
+ *[0-9a-f]+: ba5f0000 ccmn x0, xzr, #0x0, eq // eq = none
+ *[0-9a-f]+: ba40000f ccmn x0, x0, #0xf, eq // eq = none
+ *[0-9a-f]+: ba40f000 ccmn x0, x0, #0x0, nv
+ *[0-9a-f]+: 7a400000 ccmp w0, w0, #0x0, eq // eq = none
+ *[0-9a-f]+: 7a4003e0 ccmp wzr, w0, #0x0, eq // eq = none
+ *[0-9a-f]+: 7a5f0000 ccmp w0, wzr, #0x0, eq // eq = none
+ *[0-9a-f]+: 7a40000f ccmp w0, w0, #0xf, eq // eq = none
+ *[0-9a-f]+: 7a40f000 ccmp w0, w0, #0x0, nv
+ *[0-9a-f]+: fa400000 ccmp x0, x0, #0x0, eq // eq = none
+ *[0-9a-f]+: fa4003e0 ccmp xzr, x0, #0x0, eq // eq = none
+ *[0-9a-f]+: fa5f0000 ccmp x0, xzr, #0x0, eq // eq = none
+ *[0-9a-f]+: fa40000f ccmp x0, x0, #0xf, eq // eq = none
+ *[0-9a-f]+: fa40f000 ccmp x0, x0, #0x0, nv
+ *[0-9a-f]+: 3a400800 ccmn w0, #0x0, #0x0, eq // eq = none
+ *[0-9a-f]+: 3a400800 ccmn w0, #0x0, #0x0, eq // eq = none
+ *[0-9a-f]+: 3a401800 ccmn w0, #0x0, #0x0, ne // ne = any
+ *[0-9a-f]+: 3a401800 ccmn w0, #0x0, #0x0, ne // ne = any
+ *[0-9a-f]+: 3a402800 ccmn w0, #0x0, #0x0, cs // cs = hs, nlast
+ *[0-9a-f]+: 3a402800 ccmn w0, #0x0, #0x0, cs // cs = hs, nlast
+ *[0-9a-f]+: 3a402800 ccmn w0, #0x0, #0x0, cs // cs = hs, nlast
+ *[0-9a-f]+: 3a403800 ccmn w0, #0x0, #0x0, cc // cc = lo, ul, last
+ *[0-9a-f]+: 3a403800 ccmn w0, #0x0, #0x0, cc // cc = lo, ul, last
+ *[0-9a-f]+: 3a403800 ccmn w0, #0x0, #0x0, cc // cc = lo, ul, last
+ *[0-9a-f]+: 3a404800 ccmn w0, #0x0, #0x0, mi // mi = first
+ *[0-9a-f]+: 3a404800 ccmn w0, #0x0, #0x0, mi // mi = first
+ *[0-9a-f]+: 3a405800 ccmn w0, #0x0, #0x0, pl // pl = nfrst
+ *[0-9a-f]+: 3a405800 ccmn w0, #0x0, #0x0, pl // pl = nfrst
+ *[0-9a-f]+: 3a406800 ccmn w0, #0x0, #0x0, vs
+ *[0-9a-f]+: 3a407800 ccmn w0, #0x0, #0x0, vc
+ *[0-9a-f]+: 3a408800 ccmn w0, #0x0, #0x0, hi // hi = pmore
+ *[0-9a-f]+: 3a408800 ccmn w0, #0x0, #0x0, hi // hi = pmore
+ *[0-9a-f]+: 3a409800 ccmn w0, #0x0, #0x0, ls // ls = plast
+ *[0-9a-f]+: 3a409800 ccmn w0, #0x0, #0x0, ls // ls = plast
+ *[0-9a-f]+: 3a40a800 ccmn w0, #0x0, #0x0, ge // ge = tcont
+ *[0-9a-f]+: 3a40a800 ccmn w0, #0x0, #0x0, ge // ge = tcont
+ *[0-9a-f]+: 3a40b800 ccmn w0, #0x0, #0x0, lt // lt = tstop
+ *[0-9a-f]+: 3a40b800 ccmn w0, #0x0, #0x0, lt // lt = tstop
+ *[0-9a-f]+: 3a40c800 ccmn w0, #0x0, #0x0, gt
+ *[0-9a-f]+: 3a40d800 ccmn w0, #0x0, #0x0, le
+ *[0-9a-f]+: 3a40e800 ccmn w0, #0x0, #0x0, al
+ *[0-9a-f]+: 3a40f800 ccmn w0, #0x0, #0x0, nv
diff --git a/gas/testsuite/gas/aarch64/conditional-compare.s b/gas/testsuite/gas/aarch64/conditional-compare.s
new file mode 100644
index 0000000..1fe23d3
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/conditional-compare.s
@@ -0,0 +1,76 @@
+ ccmn w0, #0, #0, eq
+ ccmn wzr, #0, #0, eq
+ ccmn w0, #31, #0, eq
+ ccmn w0, #0, #15, eq
+ ccmn w0, #0, #0, nv
+
+ ccmn x0, #0, #0, eq
+ ccmn xzr, #0, #0, eq
+ ccmn x0, #31, #0, eq
+ ccmn x0, #0, #15, eq
+ ccmn x0, #0, #0, nv
+
+ ccmp w0, #0, #0, eq
+ ccmp wzr, #0, #0, eq
+ ccmp w0, #31, #0, eq
+ ccmp w0, #0, #15, eq
+ ccmp w0, #0, #0, nv
+
+ ccmp x0, #0, #0, eq
+ ccmp xzr, #0, #0, eq
+ ccmp x0, #31, #0, eq
+ ccmp x0, #0, #15, eq
+ ccmp x0, #0, #0, nv
+
+ ccmn w0, w0, #0, eq
+ ccmn wzr, w0, #0, eq
+ ccmn w0, wzr, #0, eq
+ ccmn w0, w0, #15, eq
+ ccmn w0, w0, #0, nv
+
+ ccmn x0, x0, #0, eq
+ ccmn xzr, x0, #0, eq
+ ccmn x0, xzr, #0, eq
+ ccmn x0, x0, #15, eq
+ ccmn x0, x0, #0, nv
+
+ ccmp w0, w0, #0, eq
+ ccmp wzr, w0, #0, eq
+ ccmp w0, wzr, #0, eq
+ ccmp w0, w0, #15, eq
+ ccmp w0, w0, #0, nv
+
+ ccmp x0, x0, #0, eq
+ ccmp xzr, x0, #0, eq
+ ccmp x0, xzr, #0, eq
+ ccmp x0, x0, #15, eq
+ ccmp x0, x0, #0, nv
+
+ ccmn w0, #0, #0, eq
+ ccmn w0, #0, #0, none
+ ccmn w0, #0, #0, ne
+ ccmn w0, #0, #0, any
+ ccmn w0, #0, #0, hs
+ ccmn w0, #0, #0, cs
+ ccmn w0, #0, #0, nlast
+ ccmn w0, #0, #0, lo
+ ccmn w0, #0, #0, cc
+ ccmn w0, #0, #0, last
+ ccmn w0, #0, #0, mi
+ ccmn w0, #0, #0, first
+ ccmn w0, #0, #0, pl
+ ccmn w0, #0, #0, nfrst
+ ccmn w0, #0, #0, vs
+ ccmn w0, #0, #0, vc
+ ccmn w0, #0, #0, hi
+ ccmn w0, #0, #0, pmore
+ ccmn w0, #0, #0, ls
+ ccmn w0, #0, #0, plast
+ ccmn w0, #0, #0, ge
+ ccmn w0, #0, #0, tcont
+ ccmn w0, #0, #0, lt
+ ccmn w0, #0, #0, tstop
+ ccmn w0, #0, #0, gt
+ ccmn w0, #0, #0, le
+ ccmn w0, #0, #0, al
+ ccmn w0, #0, #0, nv