Home | History | Annotate | Download | only in ARM
      1 @ RUN: llvm-mc < %s -triple armv7-unknown-unknown -show-encoding -mattr=+neon,+vfp4   | FileCheck %s --check-prefix=ARM
      2 @ RUN: llvm-mc < %s -triple thumbv7-unknown-unknown -show-encoding -mattr=+neon,+vfp4 | FileCheck %s --check-prefix=THUMB
      3 @ RUN: not llvm-mc < %s -triple thumbv7-unknown-unknown -show-encoding -mcpu=cortex-m4 > %t 2> %t2
      4 @ RUN:     FileCheck %s < %t --check-prefix=THUMB_V7EM
      5 @ RUN:     FileCheck %s < %t2 --check-prefix=THUMB_V7EM-ERRORS
      6 
      7 @ ARM: vfma.f64 d16, d18, d17 @ encoding: [0xa1,0x0b,0xe2,0xee]
      8 @ THUMB: vfma.f64 d16, d18, d17 @ encoding: [0xe2,0xee,0xa1,0x0b]
      9 @ THUMB_V7EM-ERRORS: error: instruction requires: double precision VFP
     10 @ THUMB_V7EM-ERRORS-NEXT: vfma.f64 d16, d18, d17
     11 vfma.f64 d16, d18, d17
     12 
     13 @ ARM: vfma.f32 s2, s4, s0 @ encoding: [0x00,0x1a,0xa2,0xee]
     14 @ THUMB: vfma.f32 s2, s4, s0 @ encoding: [0xa2,0xee,0x00,0x1a]
     15 @ THUMB_V7EM: vfma.f32 s2, s4, s0 @ encoding: [0xa2,0xee,0x00,0x1a]
     16 vfma.f32 s2, s4, s0
     17 
     18 @ ARM: vfma.f32 d16, d18, d17 @ encoding: [0xb1,0x0c,0x42,0xf2]
     19 @ THUMB: vfma.f32 d16, d18, d17 @ encoding: [0x42,0xef,0xb1,0x0c]
     20 @ THUMB_V7EM-ERRORS: error: instruction requires: NEON
     21 @ THUMB_V7EM-ERRORS-NEXT: vfma.f32 d16, d18, d17
     22 vfma.f32 d16, d18, d17
     23 
     24 @ ARM: vfma.f32 q2, q4, q0 @ encoding: [0x50,0x4c,0x08,0xf2]
     25 @ THUMB: vfma.f32	q2, q4, q0 @ encoding: [0x08,0xef,0x50,0x4c]
     26 @ THUMB_V7EM-ERRORS: error: instruction requires: NEON
     27 @ THUMB_V7EM-ERRORS-NEXT: vfma.f32 q2, q4, q0
     28 vfma.f32 q2, q4, q0
     29 
     30 @ ARM: vfnma.f64 d16, d18, d17 @ encoding: [0xe1,0x0b,0xd2,0xee]
     31 @ THUMB: vfnma.f64 d16, d18, d17 @ encoding: [0xd2,0xee,0xe1,0x0b]
     32 @ THUMB_V7EM-ERRORS: error: instruction requires: double precision VFP
     33 @ THUMB_V7EM-ERRORS-NEXT: vfnma.f64 d16, d18, d17
     34 vfnma.f64 d16, d18, d17
     35 
     36 @ ARM: vfnma.f32 s2, s4, s0 @ encoding: [0x40,0x1a,0x92,0xee]
     37 @ THUMB: vfnma.f32 s2, s4, s0 @ encoding: [0x92,0xee,0x40,0x1a]
     38 @ THUMB_V7EM: vfnma.f32 s2, s4, s0 @ encoding: [0x92,0xee,0x40,0x1a]
     39 vfnma.f32 s2, s4, s0
     40 
     41 @ ARM: vfms.f64 d16, d18, d17 @ encoding: [0xe1,0x0b,0xe2,0xee]
     42 @ THUMB: vfms.f64 d16, d18, d17 @ encoding: [0xe2,0xee,0xe1,0x0b]
     43 @ THUMB_V7EM-ERRORS: error: instruction requires: double precision VFP
     44 @ THUMB_V7EM-ERRORS-NEXT: vfms.f64 d16, d18, d17
     45 vfms.f64 d16, d18, d17
     46 
     47 @ ARM: vfms.f32 s2, s4, s0 @ encoding: [0x40,0x1a,0xa2,0xee]
     48 @ THUMB: vfms.f32 s2, s4, s0 @ encoding: [0xa2,0xee,0x40,0x1a]
     49 @ THUMB_V7EM: vfms.f32 s2, s4, s0 @ encoding: [0xa2,0xee,0x40,0x1a]
     50 vfms.f32 s2, s4, s0
     51 
     52 @ ARM: vfms.f32 d16, d18, d17 @ encoding: [0xb1,0x0c,0x62,0xf2]
     53 @ THUMB: vfms.f32 d16, d18, d17 @ encoding: [0x62,0xef,0xb1,0x0c]
     54 @ THUMB_V7EM-ERRORS: error: instruction requires: NEON
     55 @ THUMB_V7EM-ERRORS-NEXT: vfms.f32 d16, d18, d17
     56 vfms.f32 d16, d18, d17
     57 
     58 @ ARM: vfms.f32 q2, q4, q0 @ encoding: [0x50,0x4c,0x28,0xf2]
     59 @ THUMB: vfms.f32	q2, q4, q0 @ encoding: [0x28,0xef,0x50,0x4c]
     60 @ THUMB_V7EM-ERRORS: error: instruction requires: NEON
     61 @ THUMB_V7EM-ERRORS-NEXT: vfms.f32 q2, q4, q0
     62 vfms.f32 q2, q4, q0
     63 
     64 @ ARM: vfnms.f64 d16, d18, d17 @ encoding: [0xa1,0x0b,0xd2,0xee]
     65 @ THUMB: vfnms.f64 d16, d18, d17 @ encoding: [0xd2,0xee,0xa1,0x0b]
     66 @ THUMB_V7EM-ERRORS: error: instruction requires: double precision VFP
     67 @ THUMB_V7EM-ERRORS-NEXT: vfnms.f64 d16, d18, d17
     68 vfnms.f64 d16, d18, d17
     69 
     70 @ ARM: vfnms.f32 s2, s4, s0 @ encoding: [0x00,0x1a,0x92,0xee]
     71 @ THUMB: vfnms.f32 s2, s4, s0 @ encoding: [0x92,0xee,0x00,0x1a]
     72 @ THUMB_V7EM: vfnms.f32 s2, s4, s0 @ encoding: [0x92,0xee,0x00,0x1a]
     73 vfnms.f32 s2, s4, s0
     74