1# RUN: llvm-mc %s --triple=loongarch32 --show-encoding \ 2# RUN: | FileCheck --check-prefixes=ASM-AND-OBJ,ASM %s 3# RUN: llvm-mc %s --triple=loongarch64 --show-encoding \ 4# RUN: | FileCheck --check-prefixes=ASM-AND-OBJ,ASM %s 5# RUN: llvm-mc %s --triple=loongarch32 --filetype=obj \ 6# RUN: | llvm-objdump -d - \ 7# RUN: | FileCheck --check-prefix=ASM-AND-OBJ %s 8# RUN: llvm-mc %s --triple=loongarch64 --filetype=obj \ 9# RUN: | llvm-objdump -d - \ 10# RUN: | FileCheck --check-prefix=ASM-AND-OBJ %s 11 12## Support for the 'D' extension implies support for 'F' 13# ASM-AND-OBJ: fadd.s $fs5, $ft7, $fs1 14# ASM: encoding: [0xfd,0xe5,0x00,0x01] 15fadd.s $fs5, $ft7, $fs1 16 17# ASM-AND-OBJ: fadd.d $fs1, $fa7, $ft5 18# ASM: encoding: [0xf9,0x34,0x01,0x01] 19fadd.d $fs1, $fa7, $ft5 20 21# ASM-AND-OBJ: fsub.d $fs5, $fa1, $ft10 22# ASM: encoding: [0x3d,0x48,0x03,0x01] 23fsub.d $fs5, $fa1, $ft10 24 25# ASM-AND-OBJ: fmul.d $fa4, $fs6, $fa7 26# ASM: encoding: [0xc4,0x1f,0x05,0x01] 27fmul.d $fa4, $fs6, $fa7 28 29# ASM-AND-OBJ: fdiv.d $fa3, $fs1, $fs4 30# ASM: encoding: [0x23,0x73,0x07,0x01] 31fdiv.d $fa3, $fs1, $fs4 32 33# ASM-AND-OBJ: fmadd.d $ft13, $fs0, $fs4, $fs0 34# ASM: encoding: [0x15,0x73,0x2c,0x08] 35fmadd.d $ft13, $fs0, $fs4, $fs0 36 37# ASM-AND-OBJ: fmsub.d $fa6, $ft10, $ft12, $fs3 38# ASM: encoding: [0x46,0xd2,0x6d,0x08] 39fmsub.d $fa6, $ft10, $ft12, $fs3 40 41# ASM-AND-OBJ: fnmadd.d $fs1, $ft5, $ft11, $fs6 42# ASM: encoding: [0xb9,0x4d,0xaf,0x08] 43fnmadd.d $fs1, $ft5, $ft11, $fs6 44 45# ASM-AND-OBJ: fnmsub.d $fs6, $fs2, $fa7, $fs0 46# ASM: encoding: [0x5e,0x1f,0xec,0x08] 47fnmsub.d $fs6, $fs2, $fa7, $fs0 48 49# ASM-AND-OBJ: fmax.d $ft3, $fs2, $ft5 50# ASM: encoding: [0x4b,0x37,0x09,0x01] 51fmax.d $ft3, $fs2, $ft5 52 53# ASM-AND-OBJ: fmin.d $fa1, $ft5, $fs3 54# ASM: encoding: [0xa1,0x6d,0x0b,0x01] 55fmin.d $fa1, $ft5, $fs3 56 57# ASM-AND-OBJ: fmaxa.d $fs0, $ft5, $fa4 58# ASM: encoding: [0xb8,0x11,0x0d,0x01] 59fmaxa.d $fs0, $ft5, $fa4 60 61# ASM-AND-OBJ: fmina.d $ft10, $ft2, $fa0 62# ASM: encoding: [0x52,0x01,0x0f,0x01] 63fmina.d $ft10, $ft2, $fa0 64 65# ASM-AND-OBJ: fabs.d $ft15, $fa3 66# ASM: encoding: [0x77,0x08,0x14,0x01] 67fabs.d $ft15, $fa3 68 69# ASM-AND-OBJ: fneg.d $ft3, $fs2 70# ASM: encoding: [0x4b,0x1b,0x14,0x01] 71fneg.d $ft3, $fs2 72 73# ASM-AND-OBJ: fsqrt.d $fa2, $ft3 74# ASM: encoding: [0x62,0x49,0x14,0x01] 75fsqrt.d $fa2, $ft3 76 77# ASM-AND-OBJ: frecip.d $fs3, $fs3 78# ASM: encoding: [0x7b,0x5b,0x14,0x01] 79frecip.d $fs3, $fs3 80 81# ASM-AND-OBJ: frecipe.d $fa0, $fa0 82# ASM: encoding: [0x00,0x78,0x14,0x01] 83frecipe.d $fa0, $fa0 84 85# ASM-AND-OBJ: frsqrt.d $ft14, $fa3 86# ASM: encoding: [0x76,0x68,0x14,0x01] 87frsqrt.d $ft14, $fa3 88 89# ASM-AND-OBJ: frsqrte.d $fa1, $fa1 90# ASM: encoding: [0x21,0x88,0x14,0x01] 91frsqrte.d $fa1, $fa1 92 93# ASM-AND-OBJ: fscaleb.d $ft4, $ft6, $fs2 94# ASM: encoding: [0xcc,0x69,0x11,0x01] 95fscaleb.d $ft4, $ft6, $fs2 96 97# ASM-AND-OBJ: flogb.d $ft13, $fs5 98# ASM: encoding: [0xb5,0x2b,0x14,0x01] 99flogb.d $ft13, $fs5 100 101# ASM-AND-OBJ: fcopysign.d $ft8, $fs2, $fa6 102# ASM: encoding: [0x50,0x1b,0x13,0x01] 103fcopysign.d $ft8, $fs2, $fa6 104 105# ASM-AND-OBJ: fclass.d $ft11, $fa2 106# ASM: encoding: [0x53,0x38,0x14,0x01] 107fclass.d $ft11, $fa2 108