155 lines · plain
1# RUN: llvm-mc %s -triple mips-unknown-linux -show-encoding -mcpu=mips64r2 | FileCheck %s2# RUN: llvm-mc %s -triple mips-unknown-linux -show-encoding -mcpu=mips64r3 | FileCheck %s3# RUN: llvm-mc %s -triple mips-unknown-linux -show-encoding -mcpu=mips64r5 | FileCheck %s4 5# RUN: llvm-mc %s -triple mips-unknown-linux -show-encoding -mattr=use-tcc-in-div -mcpu=mips64 | FileCheck %s --check-prefix=CHECK-TRAP6# RUN: llvm-mc %s -triple mips-unknown-linux -show-encoding -mattr=use-tcc-in-div -mcpu=mips64r2 | FileCheck %s --check-prefix=CHECK-TRAP7# RUN: llvm-mc %s -triple mips-unknown-linux -show-encoding -mattr=use-tcc-in-div -mcpu=mips64r3 | FileCheck %s --check-prefix=CHECK-TRAP8# RUN: llvm-mc %s -triple mips-unknown-linux -show-encoding -mattr=use-tcc-in-div -mcpu=mips64r5 | FileCheck %s --check-prefix=CHECK-TRAP9 10.text11text_label:12 13 mul $4, $514# CHECK: mul $4, $4, $5 # encoding: [0x70,0x85,0x20,0x02]15# CHECK-TRAP: mul $4, $4, $5 # encoding: [0x70,0x85,0x20,0x02]16 mul $4, $5, $617# CHECK: mul $4, $5, $6 # encoding: [0x70,0xa6,0x20,0x02]18# CHECK-TRAP: mul $4, $5, $6 # encoding: [0x70,0xa6,0x20,0x02]19 mul $4, $5, 020# CHECK: addiu $1, $zero, 0 # encoding: [0x24,0x01,0x00,0x00]21# CHECK: mult $5, $1 # encoding: [0x00,0xa1,0x00,0x18]22# CHECK: mflo $4 # encoding: [0x00,0x00,0x20,0x12]23# CHECK-TRAP: addiu $1, $zero, 0 # encoding: [0x24,0x01,0x00,0x00]24# CHECK-TRAP: mult $5, $1 # encoding: [0x00,0xa1,0x00,0x18]25# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]26 mul $4, $5, 127# CHECK: addiu $1, $zero, 1 # encoding: [0x24,0x01,0x00,0x01]28# CHECK: mult $5, $1 # encoding: [0x00,0xa1,0x00,0x18]29# CHECK: mflo $4 # encoding: [0x00,0x00,0x20,0x12]30# CHECK-TRAP: addiu $1, $zero, 1 # encoding: [0x24,0x01,0x00,0x01]31# CHECK-TRAP: mult $5, $1 # encoding: [0x00,0xa1,0x00,0x18]32# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]33 mul $4, $5, 0x800034# CHECK: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00]35# CHECK: mult $5, $1 # encoding: [0x00,0xa1,0x00,0x18]36# CHECK: mflo $4 # encoding: [0x00,0x00,0x20,0x12]37# CHECK-TRAP: ori $1, $zero, 32768 # encoding: [0x34,0x01,0x80,0x00]38# CHECK-TRAP: mult $5, $1 # encoding: [0x00,0xa1,0x00,0x18]39# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]40 mul $4, $5, -0x800041# CHECK: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00]42# CHECK: mult $5, $1 # encoding: [0x00,0xa1,0x00,0x18]43# CHECK: mflo $4 # encoding: [0x00,0x00,0x20,0x12]44# CHECK-TRAP: addiu $1, $zero, -32768 # encoding: [0x24,0x01,0x80,0x00]45# CHECK-TRAP: mult $5, $1 # encoding: [0x00,0xa1,0x00,0x18]46# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]47 mul $4, $5, 0x1000048# CHECK: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01]49# CHECK: mult $5, $1 # encoding: [0x00,0xa1,0x00,0x18]50# CHECK: mflo $4 # encoding: [0x00,0x00,0x20,0x12]51# CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01]52# CHECK-TRAP: mult $5, $1 # encoding: [0x00,0xa1,0x00,0x18]53# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]54 mul $4, $5, 0x1a5a555# CHECK: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01]56# CHECK: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5]57# CHECK: mult $5, $1 # encoding: [0x00,0xa1,0x00,0x18]58# CHECK: mflo $4 # encoding: [0x00,0x00,0x20,0x12]59# CHECK-TRAP: lui $1, 1 # encoding: [0x3c,0x01,0x00,0x01]60# CHECK-TRAP: ori $1, $1, 42405 # encoding: [0x34,0x21,0xa5,0xa5]61# CHECK-TRAP: mult $5, $1 # encoding: [0x00,0xa1,0x00,0x18]62# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]63 mulo $4, $564# CHECK: mult $4, $5 # encoding: [0x00,0x85,0x00,0x18]65# CHECK: mflo $4 # encoding: [0x00,0x00,0x20,0x12]66# CHECK: sra $4, $4, 31 # encoding: [0x00,0x04,0x27,0xc3]67# CHECK: mfhi $1 # encoding: [0x00,0x00,0x08,0x10]68# CHECK: beq $4, $1, $tmp0 # encoding: [0x10,0x81,A,A]69# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]70# CHECK: break 6 # encoding: [0x00,0x06,0x00,0x0d]71# CHECK: mflo $4 # encoding: [0x00,0x00,0x20,0x12]72# CHECK-TRAP: mult $4, $5 # encoding: [0x00,0x85,0x00,0x18]73# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]74# CHECK-TRAP: sra $4, $4, 31 # encoding: [0x00,0x04,0x27,0xc3]75# CHECK-TRAP: mfhi $1 # encoding: [0x00,0x00,0x08,0x10]76# CHECK-TRAP: tne $4, $1, 6 # encoding: [0x00,0x81,0x01,0xb6]77# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]78 79 mulo $4, $5, $680# CHECK: mult $5, $6 # encoding: [0x00,0xa6,0x00,0x18]81# CHECK: mflo $4 # encoding: [0x00,0x00,0x20,0x12]82# CHECK: sra $4, $4, 31 # encoding: [0x00,0x04,0x27,0xc3]83# CHECK: mfhi $1 # encoding: [0x00,0x00,0x08,0x10]84# CHECK: beq $4, $1, $tmp1 # encoding: [0x10,0x81,A,A]85# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]86# CHECK: break 6 # encoding: [0x00,0x06,0x00,0x0d]87# CHECK: mflo $4 # encoding: [0x00,0x00,0x20,0x12]88# CHECK-TRAP: mult $5, $6 # encoding: [0x00,0xa6,0x00,0x18]89# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]90# CHECK-TRAP: sra $4, $4, 31 # encoding: [0x00,0x04,0x27,0xc3]91# CHECK-TRAP: mfhi $1 # encoding: [0x00,0x00,0x08,0x10]92# CHECK-TRAP: tne $4, $1, 6 # encoding: [0x00,0x81,0x01,0xb6]93# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]94 mulou $4,$595# CHECK: multu $4, $5 # encoding: [0x00,0x85,0x00,0x19]96# CHECK: mfhi $1 # encoding: [0x00,0x00,0x08,0x10]97# CHECK: mflo $4 # encoding: [0x00,0x00,0x20,0x12]98# CHECK: beqz $1, $tmp2 # encoding: [0x10,0x20,A,A]99# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]100# CHECK: break 6 # encoding: [0x00,0x06,0x00,0x0d]101# CHECK-TRAP: multu $4, $5 # encoding: [0x00,0x85,0x00,0x19]102# CHECK-TRAP: mfhi $1 # encoding: [0x00,0x00,0x08,0x10]103# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]104# CHECK-TRAP: tne $1, $zero, 6 # encoding: [0x00,0x20,0x01,0xb6]105 mulou $4, $5, $6106# CHECK: multu $5, $6 # encoding: [0x00,0xa6,0x00,0x19]107# CHECK: mfhi $1 # encoding: [0x00,0x00,0x08,0x10]108# CHECK: mflo $4 # encoding: [0x00,0x00,0x20,0x12]109# CHECK: beqz $1, $tmp3 # encoding: [0x10,0x20,A,A]110# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]111# CHECK: break 6 # encoding: [0x00,0x06,0x00,0x0d]112# CHECK-TRAP: multu $5, $6 # encoding: [0x00,0xa6,0x00,0x19]113# CHECK-TRAP: mfhi $1 # encoding: [0x00,0x00,0x08,0x10]114# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]115# CHECK-TRAP: tne $1, $zero, 6 # encoding: [0x00,0x20,0x01,0xb6]116 117 dmul $4, $5, $6118# CHECK: dmultu $5, $6 # encoding: [0x00,0xa6,0x00,0x1d]119# CHECK: mflo $4 # encoding: [0x00,0x00,0x20,0x12]120# CHECK-TRAP: dmultu $5, $6 # encoding: [0x00,0xa6,0x00,0x1d]121# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]122 dmul $4, $5, 1123# CHECK: addiu $1, $zero, 1 # encoding: [0x24,0x01,0x00,0x01]124# CHECK: dmult $5, $1 # encoding: [0x00,0xa1,0x00,0x1c]125# CHECK: mflo $4 # encoding: [0x00,0x00,0x20,0x12]126# CHECK-TRAP: addiu $1, $zero, 1 # encoding: [0x24,0x01,0x00,0x01]127# CHECK-TRAP: dmult $5, $1 # encoding: [0x00,0xa1,0x00,0x1c]128# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]129 dmulo $4, $5, $6130# CHECK: dmult $5, $6 # encoding: [0x00,0xa6,0x00,0x1c]131# CHECK: mflo $4 # encoding: [0x00,0x00,0x20,0x12]132# CHECK: dsra32 $4, $4, 31 # encoding: [0x00,0x04,0x27,0xff]133# CHECK: mfhi $1 # encoding: [0x00,0x00,0x08,0x10]134# CHECK: beq $4, $1, $tmp4 # encoding: [0x10,0x81,A,A]135# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]136# CHECK: break 6 # encoding: [0x00,0x06,0x00,0x0d]137# CHECK: mflo $4 # encoding: [0x00,0x00,0x20,0x12]138# CHECK-TRAP: dmult $5, $6 # encoding: [0x00,0xa6,0x00,0x1c]139# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]140# CHECK-TRAP: dsra32 $4, $4, 31 # encoding: [0x00,0x04,0x27,0xff]141# CHECK-TRAP: mfhi $1 # encoding: [0x00,0x00,0x08,0x10]142# CHECK-TRAP: tne $4, $1, 6 # encoding: [0x00,0x81,0x01,0xb6]143# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]144 dmulou $4,$5,$6145# CHECK: dmultu $5, $6 # encoding: [0x00,0xa6,0x00,0x1d]146# CHECK: mfhi $1 # encoding: [0x00,0x00,0x08,0x10]147# CHECK: mflo $4 # encoding: [0x00,0x00,0x20,0x12]148# CHECK: beqz $1, $tmp5 # encoding: [0x10,0x20,A,A]149# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]150# CHECK: break 6 # encoding: [0x00,0x06,0x00,0x0d]151# CHECK-TRAP: dmultu $5, $6 # encoding: [0x00,0xa6,0x00,0x1d]152# CHECK-TRAP: mfhi $1 # encoding: [0x00,0x00,0x08,0x10]153# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]154# CHECK-TRAP: tne $1, $zero, 6 # encoding: [0x00,0x20,0x01,0xb6]155