diff options
Diffstat (limited to 'llvm/test/MC')
-rw-r--r-- | llvm/test/MC/Mips/macro-ddiv-bad.s | 18 | ||||
-rw-r--r-- | llvm/test/MC/Mips/macro-ddiv.s | 85 | ||||
-rw-r--r-- | llvm/test/MC/Mips/macro-ddivu-bad.s | 18 | ||||
-rw-r--r-- | llvm/test/MC/Mips/macro-ddivu.s | 59 | ||||
-rw-r--r-- | llvm/test/MC/Mips/macro-div-bad.s | 18 | ||||
-rw-r--r-- | llvm/test/MC/Mips/macro-div.s | 64 | ||||
-rw-r--r-- | llvm/test/MC/Mips/macro-divu-bad.s | 18 | ||||
-rw-r--r-- | llvm/test/MC/Mips/macro-divu.s | 49 |
8 files changed, 329 insertions, 0 deletions
diff --git a/llvm/test/MC/Mips/macro-ddiv-bad.s b/llvm/test/MC/Mips/macro-ddiv-bad.s new file mode 100644 index 00000000000..350a0fbaeda --- /dev/null +++ b/llvm/test/MC/Mips/macro-ddiv-bad.s @@ -0,0 +1,18 @@ +# RUN: not llvm-mc %s -arch=mips -mcpu=mips32r6 2>&1 | \ +# RUN: FileCheck %s --check-prefix=R6 +# RUN: not llvm-mc %s -arch=mips64 -mcpu=mips64r6 2>&1 | \ +# RUN: FileCheck %s --check-prefix=R6 +# RUN: llvm-mc %s -arch=mips -mcpu=mips32r2 2>&1 | \ +# RUN: FileCheck %s --check-prefix=NOT-R6 +# RUN: llvm-mc %s -arch=mips64 -mcpu=mips64r2 2>&1 | \ +# RUN: FileCheck %s --check-prefix=NOT-R6 + + .text + ddiv $25, $11 + # R6: :[[@LINE-1]]:3: error: instruction not supported on mips32r6 or mips64r6 + + ddiv $25, $0 + # NOT-R6: :[[@LINE-1]]:3: warning: division by zero + + ddiv $0,$0 + # NOT-R6: :[[@LINE-1]]:3: warning: dividing zero by zero diff --git a/llvm/test/MC/Mips/macro-ddiv.s b/llvm/test/MC/Mips/macro-ddiv.s new file mode 100644 index 00000000000..99bc5450d01 --- /dev/null +++ b/llvm/test/MC/Mips/macro-ddiv.s @@ -0,0 +1,85 @@ +# RUN: llvm-mc %s -triple=mips-unknown-linux -show-encoding -mcpu=mips64r2 | \ +# RUN: FileCheck %s --check-prefix=CHECK-NOTRAP +# RUN: llvm-mc %s -triple=mips-unknown-linux -show-encoding -mcpu=mips64r2 \ +# RUN: -mattr=+use-tcc-in-div | FileCheck %s --check-prefix=CHECK-TRAP + + ddiv $25, $11 +# CHECK-NOTRAP: bne $11, $zero, 8 # encoding: [0x15,0x60,0x00,0x02] +# CHECK-NOTRAP: ddiv $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1e] +# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +# CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] +# CHECK-NOTRAP: bne $11, $1, 20 # encoding: [0x15,0x61,0x00,0x05] +# CHECK-NOTRAP: addiu $1, $zero, 1 # encoding: [0x24,0x01,0x00,0x01] +# CHECK-NOTRAP: dsll32 $1, $1, 31 # encoding: [0x00,0x01,0x0f,0xfc] +# CHECK-NOTRAP: bne $25, $1, 8 # encoding: [0x17,0x21,0x00,0x02] +# CHECK-NOTRAP: sll $zero, $zero, 0 # encoding: [0x00,0x00,0x00,0x00] +# CHECK-NOTRAP: break 6 # encoding: [0x00,0x06,0x00,0x0d] +# CHECK-NOTRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] + + ddiv $24,$12 +# CHECK-NOTRAP: bne $12, $zero, 8 # encoding: [0x15,0x80,0x00,0x02] +# CHECK-NOTRAP: ddiv $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1e] +# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +# CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] +# CHECK-NOTRAP: bne $12, $1, 20 # encoding: [0x15,0x81,0x00,0x05] +# CHECK-NOTRAP: addiu $1, $zero, 1 # encoding: [0x24,0x01,0x00,0x01] +# CHECK-NOTRAP: dsll32 $1, $1, 31 # encoding: [0x00,0x01,0x0f,0xfc] +# CHECK-NOTRAP: bne $24, $1, 8 # encoding: [0x17,0x01,0x00,0x02] +# CHECK-NOTRAP: sll $zero, $zero, 0 # encoding: [0x00,0x00,0x00,0x00] +# CHECK-NOTRAP: break 6 # encoding: [0x00,0x06,0x00,0x0d] +# CHECK-NOTRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12] + + ddiv $25,$0 +# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] + + ddiv $0,$9 +# CHECK-NOTRAP: bne $9, $zero, 8 # encoding: [0x15,0x20,0x00,0x02] +# CHECK-NOTRAP: ddiv $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1e] +# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +# CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] +# CHECK-NOTRAP: bne $9, $1, 20 # encoding: [0x15,0x21,0x00,0x05] +# CHECK-NOTRAP: addiu $1, $zero, 1 # encoding: [0x24,0x01,0x00,0x01] +# CHECK-NOTRAP: dsll32 $1, $1, 31 # encoding: [0x00,0x01,0x0f,0xfc] +# CHECK-NOTRAP: bne $zero, $1, 8 # encoding: [0x14,0x01,0x00,0x02] +# CHECK-NOTRAP: sll $zero, $zero, 0 # encoding: [0x00,0x00,0x00,0x00] +# CHECK-NOTRAP: break 6 # encoding: [0x00,0x06,0x00,0x0d] +# CHECK-NOTRAP: mflo $zero # encoding: [0x00,0x00,0x00,0x12] + + ddiv $0,$0 +# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] + + ddiv $25,$11 +# CHECK-TRAP: teq $11, $zero, 7 # encoding: [0x01,0x60,0x01,0xf4] +# CHECK-TRAP: ddiv $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1e] +# CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] +# CHECK-TRAP: bne $11, $1, 12 # encoding: [0x15,0x61,0x00,0x03] +# CHECK-TRAP: addiu $1, $zero, 1 # encoding: [0x24,0x01,0x00,0x01] +# CHECK-TRAP: dsll32 $1, $1, 31 # encoding: [0x00,0x01,0x0f,0xfc] +# CHECK-TRAP: teq $25, $1, 6 # encoding: [0x03,0x21,0x01,0xb4] +# CHECK-TRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] + + ddiv $24,$12 +# CHECK-TRAP: teq $12, $zero, 7 # encoding: [0x01,0x80,0x01,0xf4] +# CHECK-TRAP: ddiv $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1e] +# CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] +# CHECK-TRAP: bne $12, $1, 12 # encoding: [0x15,0x81,0x00,0x03] +# CHECK-TRAP: addiu $1, $zero, 1 # encoding: [0x24,0x01,0x00,0x01] +# CHECK-TRAP: dsll32 $1, $1, 31 # encoding: [0x00,0x01,0x0f,0xfc] +# CHECK-TRAP: teq $24, $1, 6 # encoding: [0x03,0x01,0x01,0xb4] +# CHECK-TRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12] + + ddiv $25,$0 +# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] + + ddiv $0,$9 +# CHECK-TRAP: teq $9, $zero, 7 # encoding: [0x01,0x20,0x01,0xf4] +# CHECK-TRAP: ddiv $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1e] +# CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] +# CHECK-TRAP: bne $9, $1, 12 # encoding: [0x15,0x21,0x00,0x03] +# CHECK-TRAP: addiu $1, $zero, 1 # encoding: [0x24,0x01,0x00,0x01] +# CHECK-TRAP: dsll32 $1, $1, 31 # encoding: [0x00,0x01,0x0f,0xfc] +# CHECK-TRAP: teq $zero, $1, 6 # encoding: [0x00,0x01,0x01,0xb4] +# CHECK-TRAP: mflo $zero # encoding: [0x00,0x00,0x00,0x12] + + ddiv $0,$0 +# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] diff --git a/llvm/test/MC/Mips/macro-ddivu-bad.s b/llvm/test/MC/Mips/macro-ddivu-bad.s new file mode 100644 index 00000000000..7a6c7e0bd52 --- /dev/null +++ b/llvm/test/MC/Mips/macro-ddivu-bad.s @@ -0,0 +1,18 @@ +# RUN: not llvm-mc %s -arch=mips -mcpu=mips32r6 2>&1 | \ +# RUN: FileCheck %s --check-prefix=R6 +# RUN: not llvm-mc %s -arch=mips64 -mcpu=mips64r6 2>&1 | \ +# RUN: FileCheck %s --check-prefix=R6 +# RUN: llvm-mc %s -arch=mips -mcpu=mips32r2 2>&1 | \ +# RUN: FileCheck %s --check-prefix=NOT-R6 +# RUN: llvm-mc %s -arch=mips64 -mcpu=mips64r2 2>&1 | \ +# RUN: FileCheck %s --check-prefix=NOT-R6 + + .text + ddivu $25, $11 + # R6: :[[@LINE-1]]:3: error: instruction not supported on mips32r6 or mips64r6 + + ddivu $25, $0 + # NOT-R6: :[[@LINE-1]]:3: warning: division by zero + + ddivu $0,$0 + # NOT-R6: :[[@LINE-1]]:3: warning: dividing zero by zero diff --git a/llvm/test/MC/Mips/macro-ddivu.s b/llvm/test/MC/Mips/macro-ddivu.s new file mode 100644 index 00000000000..72d92380278 --- /dev/null +++ b/llvm/test/MC/Mips/macro-ddivu.s @@ -0,0 +1,59 @@ +# RUN: llvm-mc %s -triple=mips-unknown-linux -show-encoding -mcpu=mips64r2 | \ +# RUN: FileCheck %s --check-prefix=CHECK-NOTRAP +# RUN: llvm-mc %s -triple=mips-unknown-linux -show-encoding -mcpu=mips64r2 \ +# RUN: -mattr=+use-tcc-in-div | FileCheck %s --check-prefix=CHECK-TRAP + + ddivu $25,$11 +# CHECK-NOTRAP: bne $11, $zero, 8 # encoding: [0x15,0x60,0x00,0x02] +# CHECK-NOTRAP: ddivu $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1f] +# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +# CHECK-NOTRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] + + ddivu $24,$12 +# CHECK-NOTRAP: bne $12, $zero, 8 # encoding: [0x15,0x80,0x00,0x02] +# CHECK-NOTRAP: ddivu $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1f] +# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +# CHECK-NOTRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12] + + ddivu $25,$0 +# CHECK-NOTRAP: bne $zero, $zero, 8 # encoding: [0x14,0x00,0x00,0x02] +# CHECK-NOTRAP: ddivu $zero, $25, $zero # encoding: [0x03,0x20,0x00,0x1f] +# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +# CHECK-NOTRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] + + ddivu $0,$9 +# CHECK-NOTRAP: bne $9, $zero, 8 # encoding: [0x15,0x20,0x00,0x02] +# CHECK-NOTRAP: ddivu $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1f] +# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +# CHECK-NOTRAP: mflo $zero # encoding: [0x00,0x00,0x00,0x12] + + ddivu $0,$0 +# CHECK-NOTRAP: bne $zero, $zero, 8 # encoding: [0x14,0x00,0x00,0x02] +# CHECK-NOTRAP: ddivu $zero, $zero, $zero # encoding: [0x00,0x00,0x00,0x1f] +# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +# CHECK-NOTRAP: mflo $zero # encoding: [0x00,0x00,0x00,0x12] + + ddivu $25, $11 +# CHECK-TRAP: teq $11, $zero, 7 # encoding: [0x01,0x60,0x01,0xf4] +# CHECK-TRAP: ddivu $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1f] +# CHECK-TRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] + + ddivu $24,$12 +# CHECK-TRAP: teq $12, $zero, 7 # encoding: [0x01,0x80,0x01,0xf4] +# CHECK-TRAP: ddivu $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1f] +# CHECK-TRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12] + + ddivu $25,$0 +# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] +# CHECK-TRAP: ddivu $zero, $25, $zero # encoding: [0x03,0x20,0x00,0x1f] +# CHECK-TRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] + + ddivu $0,$9 +# CHECK-TRAP: teq $9, $zero, 7 # encoding: [0x01,0x20,0x01,0xf4] +# CHECK-TRAP: ddivu $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1f] +# CHECK-TRAP: mflo $zero # encoding: [0x00,0x00,0x00,0x12] + + ddivu $0,$0 +# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] +# CHECK-TRAP: ddivu $zero, $zero, $zero # encoding: [0x00,0x00,0x00,0x1f] +# CHECK-TRAP: mflo $zero # encoding: [0x00,0x00,0x00,0x12] diff --git a/llvm/test/MC/Mips/macro-div-bad.s b/llvm/test/MC/Mips/macro-div-bad.s new file mode 100644 index 00000000000..086e8b44188 --- /dev/null +++ b/llvm/test/MC/Mips/macro-div-bad.s @@ -0,0 +1,18 @@ +# RUN: not llvm-mc %s -arch=mips -mcpu=mips32r6 2>&1 | \ +# RUN: FileCheck %s --check-prefix=R6 +# RUN: not llvm-mc %s -arch=mips64 -mcpu=mips64r6 2>&1 | \ +# RUN: FileCheck %s --check-prefix=R6 +# RUN: llvm-mc %s -arch=mips -mcpu=mips32r2 2>&1 | \ +# RUN: FileCheck %s --check-prefix=NOT-R6 +# RUN: llvm-mc %s -arch=mips64 -mcpu=mips64r2 2>&1 | \ +# RUN: FileCheck %s --check-prefix=NOT-R6 + + .text + div $25, $11 + # R6: :[[@LINE-1]]:3: error: instruction not supported on mips32r6 or mips64r6 + + div $25, $0 + # NOT-R6: :[[@LINE-1]]:3: warning: division by zero + + div $0,$0 + # NOT-R6: :[[@LINE-1]]:3: warning: dividing zero by zero diff --git a/llvm/test/MC/Mips/macro-div.s b/llvm/test/MC/Mips/macro-div.s new file mode 100644 index 00000000000..9efd6e19db1 --- /dev/null +++ b/llvm/test/MC/Mips/macro-div.s @@ -0,0 +1,64 @@ +# RUN: llvm-mc %s -triple=mips-unknown-linux -show-encoding -mcpu=mips32r2 | \ +# RUN: FileCheck %s --check-prefix=CHECK-NOTRAP +# RUN: llvm-mc %s -triple=mips-unknown-linux -show-encoding -mcpu=mips32r2 \ +# RUN: -mattr=+use-tcc-in-div | FileCheck %s --check-prefix=CHECK-TRAP + + div $25,$11 +# CHECK-NOTRAP: bnez $11, 8 # encoding: [0x15,0x60,0x00,0x02] +# CHECK-NOTRAP: div $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1a] +# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +# CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] +# CHECK-NOTRAP: bne $11, $1, 16 # encoding: [0x15,0x61,0x00,0x04] +# CHECK-NOTRAP: lui $1, 32768 # encoding: [0x3c,0x01,0x80,0x00] +# CHECK-NOTRAP: bne $25, $1, 8 # encoding: [0x17,0x21,0x00,0x02] +# CHECK-NOTRAP: nop # encoding: [0x00,0x00,0x00,0x00] +# CHECK-NOTRAP: break 6 # encoding: [0x00,0x06,0x00,0x0d] +# CHECK-NOTRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] + + div $24,$12 +# CHECK-NOTRAP: bnez $12, 8 # encoding: [0x15,0x80,0x00,0x02] +# CHECK-NOTRAP: div $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1a] +# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +# CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] +# CHECK-NOTRAP: bne $12, $1, 16 # encoding: [0x15,0x81,0x00,0x04] +# CHECK-NOTRAP: lui $1, 32768 # encoding: [0x3c,0x01,0x80,0x00] +# CHECK-NOTRAP: bne $24, $1, 8 # encoding: [0x17,0x01,0x00,0x02] +# CHECK-NOTRAP: nop # encoding: [0x00,0x00,0x00,0x00] +# CHECK-NOTRAP: break 6 # encoding: [0x00,0x06,0x00,0x0d] +# CHECK-NOTRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12] + + div $25,$0 +# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] + + div $0,$9 +# CHECK-NOTRAP: div $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1a] + + div $0,$0 +# CHECK-NOTRAP: div $zero, $zero, $zero # encoding: [0x00,0x00,0x00,0x1a] + + div $25, $11 +# CHECK-TRAP: teq $11, $zero, 7 # encoding: [0x01,0x60,0x01,0xf4] +# CHECK-TRAP: div $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1a] +# CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] +# CHECK-TRAP: bne $11, $1, 8 # encoding: [0x15,0x61,0x00,0x02] +# CHECK-TRAP: lui $1, 32768 # encoding: [0x3c,0x01,0x80,0x00] +# CHECK-TRAP: teq $25, $1, 6 # encoding: [0x03,0x21,0x01,0xb4] +# CHECK-TRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] + + div $24,$12 +# CHECK-TRAP: teq $12, $zero, 7 # encoding: [0x01,0x80,0x01,0xf4] +# CHECK-TRAP: div $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1a] +# CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff] +# CHECK-TRAP: bne $12, $1, 8 # encoding: [0x15,0x81,0x00,0x02] +# CHECK-TRAP: lui $1, 32768 # encoding: [0x3c,0x01,0x80,0x00] +# CHECK-TRAP: teq $24, $1, 6 # encoding: [0x03,0x01,0x01,0xb4] +# CHECK-TRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12] + + div $25,$0 +# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] + + div $0,$9 +# CHECK-TRAP: div $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1a] + + div $0,$0 +# CHECK-TRAP: div $zero, $zero, $zero # encoding: [0x00,0x00,0x00,0x1a] diff --git a/llvm/test/MC/Mips/macro-divu-bad.s b/llvm/test/MC/Mips/macro-divu-bad.s new file mode 100644 index 00000000000..45cef1f8182 --- /dev/null +++ b/llvm/test/MC/Mips/macro-divu-bad.s @@ -0,0 +1,18 @@ +# RUN: not llvm-mc %s -arch=mips -mcpu=mips32r6 2>&1 | \ +# RUN: FileCheck %s --check-prefix=R6 +# RUN: not llvm-mc %s -arch=mips64 -mcpu=mips64r6 2>&1 | \ +# RUN: FileCheck %s --check-prefix=R6 +# RUN: llvm-mc %s -arch=mips -mcpu=mips32r2 2>&1 | \ +# RUN: FileCheck %s --check-prefix=NOT-R6 +# RUN: llvm-mc %s -arch=mips64 -mcpu=mips64r2 2>&1 | \ +# RUN: FileCheck %s --check-prefix=NOT-R6 + + .text + divu $25, $11 + # R6: :[[@LINE-1]]:3: error: instruction not supported on mips32r6 or mips64r6 + + divu $25, $0 + # NOT-R6: :[[@LINE-1]]:3: warning: division by zero + + divu $0,$0 + # NOT-R6: :[[@LINE-1]]:3: warning: dividing zero by zero diff --git a/llvm/test/MC/Mips/macro-divu.s b/llvm/test/MC/Mips/macro-divu.s new file mode 100644 index 00000000000..95630d34bd1 --- /dev/null +++ b/llvm/test/MC/Mips/macro-divu.s @@ -0,0 +1,49 @@ +# RUN: llvm-mc %s -triple=mips-unknown-linux -show-encoding -mcpu=mips32r2 | \ +# RUN: FileCheck %s --check-prefix=CHECK-NOTRAP +# RUN: llvm-mc %s -triple=mips-unknown-linux -show-encoding -mcpu=mips32r2 \ +# RUN: -mattr=+use-tcc-in-div | FileCheck %s --check-prefix=CHECK-TRAP + + divu $25,$11 +# CHECK-NOTRAP: bnez $11, 8 # encoding: [0x15,0x60,0x00,0x02] +# CHECK-NOTRAP: divu $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1b] +# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +# CHECK-NOTRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] + + divu $24,$12 +# CHECK-NOTRAP: bnez $12, 8 # encoding: [0x15,0x80,0x00,0x02] +# CHECK-NOTRAP: divu $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1b] +# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +# CHECK-NOTRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12] + + divu $25,$0 +# CHECK-NOTRAP: bnez $zero, 8 # encoding: [0x14,0x00,0x00,0x02] +# CHECK-NOTRAP: divu $zero, $25, $zero # encoding: [0x03,0x20,0x00,0x1b] +# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d] +# CHECK-NOTRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] + + divu $0,$9 +# CHECK-NOTRAP: divu $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1b] + + divu $0,$0 +# CHECK-NOTRAP: divu $zero, $zero, $zero # encoding: [0x00,0x00,0x00,0x1b] + + divu $25, $11 +# CHECK-TRAP: teq $11, $zero, 7 # encoding: [0x01,0x60,0x01,0xf4] +# CHECK-TRAP: divu $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1b] +# CHECK-TRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] + + divu $24,$12 +# CHECK-TRAP: teq $12, $zero, 7 # encoding: [0x01,0x80,0x01,0xf4] +# CHECK-TRAP: divu $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1b] +# CHECK-TRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12] + + divu $25,$0 +# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4] +# CHECK-TRAP: divu $zero, $25, $zero # encoding: [0x03,0x20,0x00,0x1b] +# CHECK-TRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12] + + divu $0,$9 +# CHECK-TRAP: divu $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1b] + + divu $0,$0 +# CHECK-TRAP: divu $zero, $zero, $zero # encoding: [0x00,0x00,0x00,0x1b] |