From 2161fcce7b2e5fb65a2e041b85e8d9118e772f36 Mon Sep 17 00:00:00 2001 From: Julian Brown Date: Wed, 26 Apr 2006 15:55:17 +0000 Subject: * gas/arm/neon-psyn.s: Basic test of programmers syntax. * gas/arm/neon-psyn.d: Expected output of above. --- gas/testsuite/ChangeLog | 7 +++- gas/testsuite/gas/arm/neon-psyn.d | 37 +++++++++++++++++++ gas/testsuite/gas/arm/neon-psyn.s | 78 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 gas/testsuite/gas/arm/neon-psyn.d create mode 100644 gas/testsuite/gas/arm/neon-psyn.s (limited to 'gas') diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 4e5bf71..b1e36e2 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,4 +1,9 @@ -2005-04-26 Julian Brown +2006-04-26 Julian Brown + + * gas/arm/neon-psyn.s: Basic test of programmers syntax. + * gas/arm/neon-psyn.d: Expected output of above. + +2006-04-26 Julian Brown * gas/arm/copro.s: Avoid ldcl which encodes as a bad Neon instruction. * gas/arm/copro.d: Update accordingly. diff --git a/gas/testsuite/gas/arm/neon-psyn.d b/gas/testsuite/gas/arm/neon-psyn.d new file mode 100644 index 0000000..c318672 --- /dev/null +++ b/gas/testsuite/gas/arm/neon-psyn.d @@ -0,0 +1,37 @@ +# name: Neon programmers syntax +# as: -mfpu=neon +# objdump: -dr --prefix-addresses --show-raw-insn + +.*: +file format .*arm.* + +Disassembly of section .text: +0[0-9a-f]+ <[^>]+> f2144954 vmul\.i16 q2, q2, q2 +0[0-9a-f]+ <[^>]+> f2a33862 vmul\.i32 d3, d3, d2\[1\] +0[0-9a-f]+ <[^>]+> f2233912 vmul\.i32 d3, d3, d2 +0[0-9a-f]+ <[^>]+> f2222803 vadd\.i32 d2, d2, d3 +0[0-9a-f]+ <[^>]+> f3924a4a vmull\.u16 q2, d2, d2\[1\] +0[0-9a-f]+ <[^>]+> f2910061 vmla\.i16 d0, d1, d1\[2\] +0[0-9a-f]+ <[^>]+> f2910061 vmla\.i16 d0, d1, d1\[2\] +0[0-9a-f]+ <[^>]+> f2255805 vadd\.i32 d5, d5, d5 +0[0-9a-f]+ <[^>]+> f2275117 vorr d5, d7, d7 +0[0-9a-f]+ <[^>]+> ee021b70 vmov\.16 d2\[1\], r1 +0[0-9a-f]+ <[^>]+> ee251b10 vmov\.32 d5\[1\], r1 +0[0-9a-f]+ <[^>]+> ec432b15 vmov d5, r2, r3 +0[0-9a-f]+ <[^>]+> ee554b30 vmov\.s8 r4, d5\[1\] +0[0-9a-f]+ <[^>]+> ec565b15 vmov r5, r6, d5 +0[0-9a-f]+ <[^>]+> f396a507 vabal\.u16 q5, d6, d7 +0[0-9a-f]+ <[^>]+> f3bb2744 vcvt\.s32\.f32 q1, q2 +0[0-9a-f]+ <[^>]+> f3bb4e15 vcvt\.f32\.u32 d4, d5, #5 +0[0-9a-f]+ <[^>]+> f3bc7c05 vdup\.32 d7, d5\[1\] +0[0-9a-f]+ <[^>]+> f3ba1904 vtbl\.8 d1, {d10-d11}, d4 +0[0-9a-f]+ <[^>]+> f4aa698f vld2\.32 {d6\[1\],d7\[1\]}, \[sl\] +0[0-9a-f]+ <[^>]+> f4aa476f vld4\.16 {d4\[1\],d6\[1\],d8\[1\],d10\[1\]}, \[sl\] +0[0-9a-f]+ <[^>]+> f4aa6e4f vld3\.16 {d6\[\]-d8\[\]}, \[sl\] +0[0-9a-f]+ <[^>]+> ee100b30 vmov\.s16 r0, d0\[0\] +0[0-9a-f]+ <[^>]+> f42a604f vld4\.16 {d6-d9}, \[sl\] +0[0-9a-f]+ <[^>]+> f4aa266f vld3\.16 {d2\[1\],d4\[1\],d6\[1\]}, \[sl\] +0[0-9a-f]+ <[^>]+> f3b47908 vtbl\.8 d7, {d4-d5}, d8 +0[0-9a-f]+ <[^>]+> f3142156 vbsl q1, q2, q3 +0[0-9a-f]+ <[^>]+> f3032e04 vcge\.f32 d2, d3, d4 +0[0-9a-f]+ <[^>]+> f3b52083 vcge\.s16 d2, d3, #0 +0[0-9a-f]+ <[^>]+> ee823b30 vdup\.16 d2, r3 diff --git a/gas/testsuite/gas/arm/neon-psyn.s b/gas/testsuite/gas/arm/neon-psyn.s new file mode 100644 index 0000000..5d412a8 --- /dev/null +++ b/gas/testsuite/gas/arm/neon-psyn.s @@ -0,0 +1,78 @@ + .arm + .syntax unified + +fish .qn q2 +cow .dn d2[1] +chips .dn d2 +banana .dn d3 + + vmul fish.s16, fish.s16, fish.s16 + + vmul banana, banana, cow.s32 + vmul d3.s32, d3.s32, d2.s32 + vadd d2.s32, d3.s32 + vmull fish.u32, chips.u16, chips.u16[1] + +X .dn D0.S16 +Y .dn D1.S16 +Z .dn Y[2] + + VMLA X, Y, Z + VMLA X, Y, Y[2] + +foo .dn d5 +bar .dn d7 +foos .dn foo[1] + + vadd foo, foo, foo.u32 + + vmov foo, bar + vmov d2.s16[1], r1 + vmov d5.s32[1], r1 + vmov foo, r2, r3 + vmov r4, foos.s8 + vmov r5, r6, foo + +baa .qn q5 +moo .dn d6 +sheep .dn d7 +chicken .dn d8 + + vabal baa, moo.u16, sheep.u16 + + vcvt q1.s32, q2.f32 + vcvt d4.f, d5.u32, #5 + + vdup bar, foos.32 + vtbl d1, {baa}, d4.8 + +el1 .dn d4.16[1] +el2 .dn d6.16[1] +el3 .dn d8.16[1] +el4 .dn d10.16[1] + + vld2 {moo.32[1], sheep.32[1]}, [r10] + vld4 {el1, el2, el3, el4}, [r10] + vld3 {moo.16[], sheep.16[], chicken.16[]}, [r10] + + vmov r0,d0.s16[0] + +el5 .qn q3.16 +el6 .qn q4.16 + + vld4 {el5,el6}, [r10] + + vld3 {d2.s16[1], d4.s16[1], d6.s16[1]}, [r10] + +chicken8 .dn chicken.8 + + vtbl d7.8, {d4, d5}, chicken8 + + vbsl q1.8, q2.16, q3.8 + + vcge d2.32, d3.f, d4.f + vcge d2.16, d3.s16, #0 + +dupme .dn d2.s16 + + vdup dupme, r3 -- cgit v1.1