summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/MC/Mips/mips-expansions-bad.s4
-rw-r--r--llvm/test/MC/Mips/mips-expansions.s62
-rw-r--r--llvm/test/MC/Mips/mips64-expansions.s78
-rw-r--r--llvm/test/MC/Mips/set-nomacro.s14
4 files changed, 158 insertions, 0 deletions
diff --git a/llvm/test/MC/Mips/mips-expansions-bad.s b/llvm/test/MC/Mips/mips-expansions-bad.s
index 6bbde263f5f..6e747c38c3c 100644
--- a/llvm/test/MC/Mips/mips-expansions-bad.s
+++ b/llvm/test/MC/Mips/mips-expansions-bad.s
@@ -22,3 +22,7 @@
# 64-BIT: ori $5, $5, %lo(symbol)
dli $5, 1
# 32-BIT: :[[@LINE-1]]:3: error: instruction requires a 64-bit architecture
+ bne $2, 0x100010001, 1332
+ # 32-BIT: :[[@LINE-1]]:3: error: instruction requires a 32-bit immediate
+ beq $2, 0x100010001, 1332
+ # 32-BIT: :[[@LINE-1]]:3: error: instruction requires a 32-bit immediate
diff --git a/llvm/test/MC/Mips/mips-expansions.s b/llvm/test/MC/Mips/mips-expansions.s
index d3fdf39ff8b..0491c311aef 100644
--- a/llvm/test/MC/Mips/mips-expansions.s
+++ b/llvm/test/MC/Mips/mips-expansions.s
@@ -83,3 +83,65 @@
sdc1 $f0, symbol
# CHECK: lui $1, %hi(symbol)
# CHECK: sdc1 $f0, %lo(symbol)($1)
+
+# Test BNE with an immediate as the 2nd operand.
+ bne $2, 0, 1332
+# CHECK: bnez $2, 1332 # encoding: [0x4d,0x01,0x40,0x14]
+# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
+
+ bne $2, 123, 1332
+# CHECK: ori $1, $zero, 123 # encoding: [0x7b,0x00,0x01,0x34]
+# CHECK: bne $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x14]
+# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
+
+ bne $2, -2345, 1332
+# CHECK: addiu $1, $zero, -2345 # encoding: [0xd7,0xf6,0x01,0x24]
+# CHECK: bne $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x14]
+# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
+
+ bne $2, 65538, 1332
+# CHECK: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c]
+# CHECK: ori $1, $1, 2 # encoding: [0x02,0x00,0x21,0x34]
+# CHECK: bne $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x14]
+# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
+
+ bne $2, ~7, 1332
+# CHECK: addiu $1, $zero, -8 # encoding: [0xf8,0xff,0x01,0x24]
+# CHECK: bne $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x14]
+# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
+
+ bne $2, 0x10000, 1332
+# CHECK: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c]
+# CHECK: bne $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x14]
+# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
+
+# Test BEQ with an immediate as the 2nd operand.
+ beq $2, 0, 1332
+# CHECK: beqz $2, 1332 # encoding: [0x4d,0x01,0x40,0x10]
+# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
+
+ beq $2, 123, 1332
+# CHECK: ori $1, $zero, 123 # encoding: [0x7b,0x00,0x01,0x34]
+# CHECK: beq $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x10]
+# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
+
+ beq $2, -2345, 1332
+# CHECK: addiu $1, $zero, -2345 # encoding: [0xd7,0xf6,0x01,0x24]
+# CHECK: beq $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x10]
+# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
+
+ beq $2, 65538, 1332
+# CHECK: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c]
+# CHECK: ori $1, $1, 2 # encoding: [0x02,0x00,0x21,0x34]
+# CHECK: beq $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x10]
+# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
+
+ beq $2, ~7, 1332
+# CHECK: addiu $1, $zero, -8 # encoding: [0xf8,0xff,0x01,0x24]
+# CHECK: beq $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x10]
+# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
+
+ beq $2, 0x10000, 1332
+# CHECK: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c]
+# CHECK: beq $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x10]
+# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
diff --git a/llvm/test/MC/Mips/mips64-expansions.s b/llvm/test/MC/Mips/mips64-expansions.s
index 62a95200f24..620793a64fd 100644
--- a/llvm/test/MC/Mips/mips64-expansions.s
+++ b/llvm/test/MC/Mips/mips64-expansions.s
@@ -193,3 +193,81 @@
dli $9, 0x80000000
# CHECK: ori $9, $zero, 32768 # encoding: [0x00,0x80,0x09,0x34]
# CHECK: dsll $9, $9, 16 # encoding: [0x38,0x4c,0x09,0x00]
+
+# Test bne with an immediate as the 2nd operand.
+ bne $2, 0x100010001, 1332
+# CHECK: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c]
+# CHECK: ori $1, $1, 1 # encoding: [0x01,0x00,0x21,0x34]
+# CHECK: dsll $1, $1, 16 # encoding: [0x38,0x0c,0x01,0x00]
+# CHECK: ori $1, $1, 1 # encoding: [0x01,0x00,0x21,0x34]
+# CHECK: bne $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x14]
+# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
+
+ bne $2, 0x1000100010001, 1332
+# CHECK: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c]
+# CHECK: ori $1, $1, 1 # encoding: [0x01,0x00,0x21,0x34]
+# CHECK: dsll $1, $1, 16 # encoding: [0x38,0x0c,0x01,0x00]
+# CHECK: ori $1, $1, 1 # encoding: [0x01,0x00,0x21,0x34]
+# CHECK: dsll $1, $1, 16 # encoding: [0x38,0x0c,0x01,0x00]
+# CHECK: ori $1, $1, 1 # encoding: [0x01,0x00,0x21,0x34]
+# CHECK: bne $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x14]
+# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
+
+ bne $2, -0x100010001, 1332
+# CHECK: lui $1, 65535 # encoding: [0xff,0xff,0x01,0x3c]
+# CHECK: ori $1, $1, 65534 # encoding: [0xfe,0xff,0x21,0x34]
+# CHECK: dsll $1, $1, 16 # encoding: [0x38,0x0c,0x01,0x00]
+# CHECK: ori $1, $1, 65534 # encoding: [0xfe,0xff,0x21,0x34]
+# CHECK: dsll $1, $1, 16 # encoding: [0x38,0x0c,0x01,0x00]
+# CHECK: ori $1, $1, 65535 # encoding: [0xff,0xff,0x21,0x34]
+# CHECK: bne $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x14]
+# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
+
+ bne $2, -0x1000100010001, 1332
+# CHECK: lui $1, 65534 # encoding: [0xfe,0xff,0x01,0x3c]
+# CHECK: ori $1, $1, 65534 # encoding: [0xfe,0xff,0x21,0x34]
+# CHECK: dsll $1, $1, 16 # encoding: [0x38,0x0c,0x01,0x00]
+# CHECK: ori $1, $1, 65534 # encoding: [0xfe,0xff,0x21,0x34]
+# CHECK: dsll $1, $1, 16 # encoding: [0x38,0x0c,0x01,0x00]
+# CHECK: ori $1, $1, 65535 # encoding: [0xff,0xff,0x21,0x34]
+# CHECK: bne $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x14]
+# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
+
+# Test beq with an immediate as the 2nd operand.
+ beq $2, 0x100010001, 1332
+# CHECK: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c]
+# CHECK: ori $1, $1, 1 # encoding: [0x01,0x00,0x21,0x34]
+# CHECK: dsll $1, $1, 16 # encoding: [0x38,0x0c,0x01,0x00]
+# CHECK: ori $1, $1, 1 # encoding: [0x01,0x00,0x21,0x34]
+# CHECK: beq $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x10]
+# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
+
+ beq $2, 0x1000100010001, 1332
+# CHECK: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c]
+# CHECK: ori $1, $1, 1 # encoding: [0x01,0x00,0x21,0x34]
+# CHECK: dsll $1, $1, 16 # encoding: [0x38,0x0c,0x01,0x00]
+# CHECK: ori $1, $1, 1 # encoding: [0x01,0x00,0x21,0x34]
+# CHECK: dsll $1, $1, 16 # encoding: [0x38,0x0c,0x01,0x00]
+# CHECK: ori $1, $1, 1 # encoding: [0x01,0x00,0x21,0x34]
+# CHECK: beq $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x10]
+# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
+
+ beq $2, -0x100010001, 1332
+# CHECK: lui $1, 65535 # encoding: [0xff,0xff,0x01,0x3c]
+# CHECK: ori $1, $1, 65534 # encoding: [0xfe,0xff,0x21,0x34]
+# CHECK: dsll $1, $1, 16 # encoding: [0x38,0x0c,0x01,0x00]
+# CHECK: ori $1, $1, 65534 # encoding: [0xfe,0xff,0x21,0x34]
+# CHECK: dsll $1, $1, 16 # encoding: [0x38,0x0c,0x01,0x00]
+# CHECK: ori $1, $1, 65535 # encoding: [0xff,0xff,0x21,0x34]
+# CHECK: beq $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x10]
+# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
+
+ beq $2, -0x1000100010001, 1332
+# CHECK: lui $1, 65534 # encoding: [0xfe,0xff,0x01,0x3c]
+# CHECK: ori $1, $1, 65534 # encoding: [0xfe,0xff,0x21,0x34]
+# CHECK: dsll $1, $1, 16 # encoding: [0x38,0x0c,0x01,0x00]
+# CHECK: ori $1, $1, 65534 # encoding: [0xfe,0xff,0x21,0x34]
+# CHECK: dsll $1, $1, 16 # encoding: [0x38,0x0c,0x01,0x00]
+# CHECK: ori $1, $1, 65535 # encoding: [0xff,0xff,0x21,0x34]
+# CHECK: beq $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x10]
+# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
diff --git a/llvm/test/MC/Mips/set-nomacro.s b/llvm/test/MC/Mips/set-nomacro.s
index d81048ff12e..0f66bce551b 100644
--- a/llvm/test/MC/Mips/set-nomacro.s
+++ b/llvm/test/MC/Mips/set-nomacro.s
@@ -15,6 +15,11 @@
jal $25
jal $4, $25
+ bne $2, 0, 1332
+ bne $2, 1, 1332
+ beq $2, 0, 1332
+ beq $2, 1, 1332
+
add $4, $5, $6
.set noreorder
@@ -42,5 +47,14 @@
jal $4, $25
# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
+ bne $2, 0, 1332
+# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
+ bne $2, 1, 1332
+# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
+ beq $2, 0, 1332
+# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
+ beq $2, 1, 1332
+# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
+
add $4, $5, $6
# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions
OpenPOWER on IntegriCloud