154 lines · plain
1// RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+neon,+fullfp16 -show-encoding < %s | FileCheck %s2 3// Check that the assembler can handle the documented syntax for AArch644 5//----------------------------------------------------------------------6// Scalar Floating-point Compare Mask Equal7//----------------------------------------------------------------------8 9 fcmeq h10, h11, h1210 fcmeq s10, s11, s1211 fcmeq d20, d21, d2212 13// CHECK: fcmeq h10, h11, h12 // encoding: [0x6a,0x25,0x4c,0x5e]14// CHECK: fcmeq s10, s11, s12 // encoding: [0x6a,0xe5,0x2c,0x5e]15// CHECK: fcmeq d20, d21, d22 // encoding: [0xb4,0xe6,0x76,0x5e]16 17//----------------------------------------------------------------------18// Scalar Floating-point Compare Mask Equal To Zero19//----------------------------------------------------------------------20 21 fcmeq h10, h11, #0.022 fcmeq s10, s11, #0.023 fcmeq d20, d21, #0.024 fcmeq h10, h11, #025 fcmeq s10, s11, #026 fcmeq d20, d21, #0x027 28// CHECK: fcmeq h10, h11, #0.0 // encoding: [0x6a,0xd9,0xf8,0x5e]29// CHECK: fcmeq s10, s11, #0.0 // encoding: [0x6a,0xd9,0xa0,0x5e]30// CHECK: fcmeq d20, d21, #0.0 // encoding: [0xb4,0xda,0xe0,0x5e]31// CHECK: fcmeq h10, h11, #0.0 // encoding: [0x6a,0xd9,0xf8,0x5e]32// CHECK: fcmeq s10, s11, #0.0 // encoding: [0x6a,0xd9,0xa0,0x5e]33// CHECK: fcmeq d20, d21, #0.0 // encoding: [0xb4,0xda,0xe0,0x5e]34 35//----------------------------------------------------------------------36// Scalar Floating-point Compare Mask Greater Than Or Equal37//----------------------------------------------------------------------38 39 fcmge h10, h11, h1240 fcmge s10, s11, s1241 fcmge d20, d21, d2242 43// CHECK: fcmge h10, h11, h12 // encoding: [0x6a,0x25,0x4c,0x7e]44// CHECK: fcmge s10, s11, s12 // encoding: [0x6a,0xe5,0x2c,0x7e]45// CHECK: fcmge d20, d21, d22 // encoding: [0xb4,0xe6,0x76,0x7e]46 47//----------------------------------------------------------------------48// Scalar Floating-point Compare Mask Greater Than Or Equal To Zero49//----------------------------------------------------------------------50 51 fcmge h10, h11, #0.052 fcmge s10, s11, #0.053 fcmge d20, d21, #0.054 fcmge h10, h11, #055 fcmge s10, s11, #056 fcmge d20, d21, #0x057 58// CHECK: fcmge h10, h11, #0.0 // encoding: [0x6a,0xc9,0xf8,0x7e]59// CHECK: fcmge s10, s11, #0.0 // encoding: [0x6a,0xc9,0xa0,0x7e]60// CHECK: fcmge d20, d21, #0.0 // encoding: [0xb4,0xca,0xe0,0x7e]61// CHECK: fcmge h10, h11, #0.0 // encoding: [0x6a,0xc9,0xf8,0x7e]62// CHECK: fcmge s10, s11, #0.0 // encoding: [0x6a,0xc9,0xa0,0x7e]63// CHECK: fcmge d20, d21, #0.0 // encoding: [0xb4,0xca,0xe0,0x7e]64 65//----------------------------------------------------------------------66// Scalar Floating-point Compare Mask Greather Than67//----------------------------------------------------------------------68 69 fcmgt h10, h11, h1270 fcmgt s10, s11, s1271 fcmgt d20, d21, d2272 73// CHECK: fcmgt h10, h11, h12 // encoding: [0x6a,0x25,0xcc,0x7e]74// CHECK: fcmgt s10, s11, s12 // encoding: [0x6a,0xe5,0xac,0x7e]75// CHECK: fcmgt d20, d21, d22 // encoding: [0xb4,0xe6,0xf6,0x7e]76 77//----------------------------------------------------------------------78// Scalar Floating-point Compare Mask Greather Than Zero79//----------------------------------------------------------------------80 81 fcmgt h10, h11, #0.082 fcmgt s10, s11, #0.083 fcmgt d20, d21, #0.084 fcmgt h10, h11, #085 fcmgt s10, s11, #086 fcmgt d20, d21, #0x087 88// CHECK: fcmgt h10, h11, #0.0 // encoding: [0x6a,0xc9,0xf8,0x5e]89// CHECK: fcmgt s10, s11, #0.0 // encoding: [0x6a,0xc9,0xa0,0x5e]90// CHECK: fcmgt d20, d21, #0.0 // encoding: [0xb4,0xca,0xe0,0x5e]91// CHECK: fcmgt h10, h11, #0.0 // encoding: [0x6a,0xc9,0xf8,0x5e]92// CHECK: fcmgt s10, s11, #0.0 // encoding: [0x6a,0xc9,0xa0,0x5e]93// CHECK: fcmgt d20, d21, #0.0 // encoding: [0xb4,0xca,0xe0,0x5e]94 95//----------------------------------------------------------------------96// Scalar Floating-point Compare Mask Less Than Or Equal To Zero97//----------------------------------------------------------------------98 99 fcmle h10, h11, #0.0100 fcmle s10, s11, #0.0101 fcmle d20, d21, #0.0102 fcmle h10, h11, #0103 fcmle s10, s11, #0104 fcmle d20, d21, #0x0105 106// CHECK: fcmle h10, h11, #0.0 // encoding: [0x6a,0xd9,0xf8,0x7e]107// CHECK: fcmle s10, s11, #0.0 // encoding: [0x6a,0xd9,0xa0,0x7e]108// CHECK: fcmle d20, d21, #0.0 // encoding: [0xb4,0xda,0xe0,0x7e]109// CHECK: fcmle h10, h11, #0.0 // encoding: [0x6a,0xd9,0xf8,0x7e]110// CHECK: fcmle s10, s11, #0.0 // encoding: [0x6a,0xd9,0xa0,0x7e]111// CHECK: fcmle d20, d21, #0.0 // encoding: [0xb4,0xda,0xe0,0x7e]112 113//----------------------------------------------------------------------114// Scalar Floating-point Compare Mask Less Than115//----------------------------------------------------------------------116 117 fcmlt h10, h11, #0.0118 fcmlt s10, s11, #0.0119 fcmlt d20, d21, #0.0120 fcmlt h10, h11, #0121 fcmlt s10, s11, #0122 fcmlt d20, d21, #0x0123 124// CHECK: fcmlt h10, h11, #0.0 // encoding: [0x6a,0xe9,0xf8,0x5e]125// CHECK: fcmlt s10, s11, #0.0 // encoding: [0x6a,0xe9,0xa0,0x5e]126// CHECK: fcmlt d20, d21, #0.0 // encoding: [0xb4,0xea,0xe0,0x5e]127// CHECK: fcmlt h10, h11, #0.0 // encoding: [0x6a,0xe9,0xf8,0x5e]128// CHECK: fcmlt s10, s11, #0.0 // encoding: [0x6a,0xe9,0xa0,0x5e]129// CHECK: fcmlt d20, d21, #0.0 // encoding: [0xb4,0xea,0xe0,0x5e]130 131//----------------------------------------------------------------------132// Scalar Floating-point Absolute Compare Mask Greater Than Or Equal133//----------------------------------------------------------------------134 135 facge h10, h11, h12136 facge s10, s11, s12137 facge d20, d21, d22138 139// CHECK: facge h10, h11, h12 // encoding: [0x6a,0x2d,0x4c,0x7e]140// CHECK: facge s10, s11, s12 // encoding: [0x6a,0xed,0x2c,0x7e]141// CHECK: facge d20, d21, d22 // encoding: [0xb4,0xee,0x76,0x7e]142 143//----------------------------------------------------------------------144// Scalar Floating-point Absolute Compare Mask Greater Than145//----------------------------------------------------------------------146 147 facgt h10, h11, h12148 facgt s10, s11, s12149 facgt d20, d21, d22150 151// CHECK: facgt h10, h11, h12 // encoding: [0x6a,0x2d,0xcc,0x7e]152// CHECK: facgt s10, s11, s12 // encoding: [0x6a,0xed,0xac,0x7e]153// CHECK: facgt d20, d21, d22 // encoding: [0xb4,0xee,0xf6,0x7e]154