1*9880d681SAndroid Build Coastguard Worker# RUN: llvm-mc %s -arch=mips -mcpu=mips32 2>&1 | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: warning: macro instruction expanded into multiple instructions 4*9880d681SAndroid Build Coastguard Worker .set macro 5*9880d681SAndroid Build Coastguard Worker li $8, -16 6*9880d681SAndroid Build Coastguard Worker li $8, 16 7*9880d681SAndroid Build Coastguard Worker li $8, 161616 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Worker la $8, 16 10*9880d681SAndroid Build Coastguard Worker la $8, 161616 11*9880d681SAndroid Build Coastguard Worker la $8, 16($9) 12*9880d681SAndroid Build Coastguard Worker la $8, 161616($9) 13*9880d681SAndroid Build Coastguard Worker la $8, symbol 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Worker jal $25 16*9880d681SAndroid Build Coastguard Worker jal $4, $25 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Worker bne $2, 0, 1332 19*9880d681SAndroid Build Coastguard Worker bne $2, 1, 1332 20*9880d681SAndroid Build Coastguard Worker beq $2, 0, 1332 21*9880d681SAndroid Build Coastguard Worker beq $2, 1, 1332 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Worker blt $7, $8, local_label 24*9880d681SAndroid Build Coastguard Worker blt $7, $0, local_label 25*9880d681SAndroid Build Coastguard Worker blt $0, $8, local_label 26*9880d681SAndroid Build Coastguard Worker blt $0, $0, local_label 27*9880d681SAndroid Build Coastguard Worker 28*9880d681SAndroid Build Coastguard Worker bltu $7, $8, local_label 29*9880d681SAndroid Build Coastguard Worker bltu $7, $0, local_label 30*9880d681SAndroid Build Coastguard Worker bltu $0, $8, local_label 31*9880d681SAndroid Build Coastguard Worker bltu $0, $0, local_label 32*9880d681SAndroid Build Coastguard Worker 33*9880d681SAndroid Build Coastguard Worker ble $7, $8, local_label 34*9880d681SAndroid Build Coastguard Worker ble $7, $0, local_label 35*9880d681SAndroid Build Coastguard Worker ble $0, $8, local_label 36*9880d681SAndroid Build Coastguard Worker ble $0, $0, local_label 37*9880d681SAndroid Build Coastguard Worker 38*9880d681SAndroid Build Coastguard Worker bleu $7, $8, local_label 39*9880d681SAndroid Build Coastguard Worker bleu $7, $0, local_label 40*9880d681SAndroid Build Coastguard Worker bleu $0, $8, local_label 41*9880d681SAndroid Build Coastguard Worker bleu $0, $0, local_label 42*9880d681SAndroid Build Coastguard Worker 43*9880d681SAndroid Build Coastguard Worker bge $7, $8, local_label 44*9880d681SAndroid Build Coastguard Worker bge $7, $0, local_label 45*9880d681SAndroid Build Coastguard Worker bge $0, $8, local_label 46*9880d681SAndroid Build Coastguard Worker bge $0, $0, local_label 47*9880d681SAndroid Build Coastguard Worker 48*9880d681SAndroid Build Coastguard Worker bgeu $7, $8, local_label 49*9880d681SAndroid Build Coastguard Worker bgeu $7, $0, local_label 50*9880d681SAndroid Build Coastguard Worker bgeu $0, $8, local_label 51*9880d681SAndroid Build Coastguard Worker bgeu $0, $0, local_label 52*9880d681SAndroid Build Coastguard Worker 53*9880d681SAndroid Build Coastguard Worker bgt $7, $8, local_label 54*9880d681SAndroid Build Coastguard Worker bgt $7, $0, local_label 55*9880d681SAndroid Build Coastguard Worker bgt $0, $8, local_label 56*9880d681SAndroid Build Coastguard Worker bgt $0, $0, local_label 57*9880d681SAndroid Build Coastguard Worker 58*9880d681SAndroid Build Coastguard Worker bgtu $7, $8, local_label 59*9880d681SAndroid Build Coastguard Worker bgtu $7, $0, local_label 60*9880d681SAndroid Build Coastguard Worker bgtu $0, $8, local_label 61*9880d681SAndroid Build Coastguard Worker bgtu $0, $0, local_label 62*9880d681SAndroid Build Coastguard Worker 63*9880d681SAndroid Build Coastguard Worker ulh $5, 0 64*9880d681SAndroid Build Coastguard Worker ulhu $5, 0 65*9880d681SAndroid Build Coastguard Worker 66*9880d681SAndroid Build Coastguard Worker ulw $8, 2 67*9880d681SAndroid Build Coastguard Worker ulw $8, 0x8000 68*9880d681SAndroid Build Coastguard Worker ulw $8, 2($9) 69*9880d681SAndroid Build Coastguard Worker ulw $8, 0x8000($9) 70*9880d681SAndroid Build Coastguard Worker 71*9880d681SAndroid Build Coastguard Worker jal foo 72*9880d681SAndroid Build Coastguard Worker .option pic2 73*9880d681SAndroid Build Coastguard Worker jal foo 74*9880d681SAndroid Build Coastguard Worker .option pic0 75*9880d681SAndroid Build Coastguard Worker 76*9880d681SAndroid Build Coastguard Worker add $4, $5, $6 77*9880d681SAndroid Build Coastguard Worker 78*9880d681SAndroid Build Coastguard Worker .set noreorder 79*9880d681SAndroid Build Coastguard Worker .set nomacro 80*9880d681SAndroid Build Coastguard Worker li $8, -16 81*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 82*9880d681SAndroid Build Coastguard Worker li $8, 16 83*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 84*9880d681SAndroid Build Coastguard Worker li $8, 161616 85*9880d681SAndroid Build Coastguard Worker# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 86*9880d681SAndroid Build Coastguard Worker 87*9880d681SAndroid Build Coastguard Worker la $8, 16 88*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 89*9880d681SAndroid Build Coastguard Worker la $8, 161616 90*9880d681SAndroid Build Coastguard Worker# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 91*9880d681SAndroid Build Coastguard Worker la $8, 16($9) 92*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 93*9880d681SAndroid Build Coastguard Worker la $8, 161616($9) 94*9880d681SAndroid Build Coastguard Worker# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 95*9880d681SAndroid Build Coastguard Worker la $8, symbol 96*9880d681SAndroid Build Coastguard Worker# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 97*9880d681SAndroid Build Coastguard Worker 98*9880d681SAndroid Build Coastguard Worker jal $25 99*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 100*9880d681SAndroid Build Coastguard Worker jal $4, $25 101*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 102*9880d681SAndroid Build Coastguard Worker 103*9880d681SAndroid Build Coastguard Worker bne $2, 0, 1332 104*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 105*9880d681SAndroid Build Coastguard Worker bne $2, 1, 1332 106*9880d681SAndroid Build Coastguard Worker# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 107*9880d681SAndroid Build Coastguard Worker beq $2, 0, 1332 108*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 109*9880d681SAndroid Build Coastguard Worker beq $2, 1, 1332 110*9880d681SAndroid Build Coastguard Worker# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 111*9880d681SAndroid Build Coastguard Worker 112*9880d681SAndroid Build Coastguard Worker blt $7, $8, local_label 113*9880d681SAndroid Build Coastguard Worker# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 114*9880d681SAndroid Build Coastguard Worker blt $7, $0, local_label 115*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 116*9880d681SAndroid Build Coastguard Worker blt $0, $8, local_label 117*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 118*9880d681SAndroid Build Coastguard Worker blt $0, $0, local_label 119*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 120*9880d681SAndroid Build Coastguard Worker 121*9880d681SAndroid Build Coastguard Worker bltu $7, $8, local_label 122*9880d681SAndroid Build Coastguard Worker# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 123*9880d681SAndroid Build Coastguard Worker bltu $7, $0, local_label 124*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 125*9880d681SAndroid Build Coastguard Worker bltu $0, $8, local_label 126*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 127*9880d681SAndroid Build Coastguard Worker bltu $0, $0, local_label 128*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 129*9880d681SAndroid Build Coastguard Worker 130*9880d681SAndroid Build Coastguard Worker ble $7, $8, local_label 131*9880d681SAndroid Build Coastguard Worker# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 132*9880d681SAndroid Build Coastguard Worker ble $7, $0, local_label 133*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 134*9880d681SAndroid Build Coastguard Worker ble $0, $8, local_label 135*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 136*9880d681SAndroid Build Coastguard Worker ble $0, $0, local_label 137*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 138*9880d681SAndroid Build Coastguard Worker 139*9880d681SAndroid Build Coastguard Worker bleu $7, $8, local_label 140*9880d681SAndroid Build Coastguard Worker# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 141*9880d681SAndroid Build Coastguard Worker bleu $7, $0, local_label 142*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 143*9880d681SAndroid Build Coastguard Worker bleu $0, $8, local_label 144*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 145*9880d681SAndroid Build Coastguard Worker bleu $0, $0, local_label 146*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 147*9880d681SAndroid Build Coastguard Worker 148*9880d681SAndroid Build Coastguard Worker bge $7, $8, local_label 149*9880d681SAndroid Build Coastguard Worker# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 150*9880d681SAndroid Build Coastguard Worker bge $7, $0, local_label 151*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 152*9880d681SAndroid Build Coastguard Worker bge $0, $8, local_label 153*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 154*9880d681SAndroid Build Coastguard Worker bge $0, $0, local_label 155*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 156*9880d681SAndroid Build Coastguard Worker 157*9880d681SAndroid Build Coastguard Worker bgeu $7, $8, local_label 158*9880d681SAndroid Build Coastguard Worker# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 159*9880d681SAndroid Build Coastguard Worker bgeu $7, $0, local_label 160*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 161*9880d681SAndroid Build Coastguard Worker bgeu $0, $8, local_label 162*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 163*9880d681SAndroid Build Coastguard Worker bgeu $0, $0, local_label 164*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 165*9880d681SAndroid Build Coastguard Worker 166*9880d681SAndroid Build Coastguard Worker bgt $7, $8, local_label 167*9880d681SAndroid Build Coastguard Worker# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 168*9880d681SAndroid Build Coastguard Worker bgt $7, $0, local_label 169*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 170*9880d681SAndroid Build Coastguard Worker bgt $0, $8, local_label 171*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 172*9880d681SAndroid Build Coastguard Worker bgt $0, $0, local_label 173*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 174*9880d681SAndroid Build Coastguard Worker 175*9880d681SAndroid Build Coastguard Worker bgtu $7, $8, local_label 176*9880d681SAndroid Build Coastguard Worker# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 177*9880d681SAndroid Build Coastguard Worker bgtu $7, $0, local_label 178*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 179*9880d681SAndroid Build Coastguard Worker bgtu $0, $8, local_label 180*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 181*9880d681SAndroid Build Coastguard Worker bgtu $0, $0, local_label 182*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 183*9880d681SAndroid Build Coastguard Worker 184*9880d681SAndroid Build Coastguard Worker ulh $5, 0 185*9880d681SAndroid Build Coastguard Worker# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 186*9880d681SAndroid Build Coastguard Worker ulhu $5, 0 187*9880d681SAndroid Build Coastguard Worker# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 188*9880d681SAndroid Build Coastguard Worker 189*9880d681SAndroid Build Coastguard Worker ulw $8, 2 190*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 191*9880d681SAndroid Build Coastguard Worker ulw $8, 0x8000 192*9880d681SAndroid Build Coastguard Worker# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 193*9880d681SAndroid Build Coastguard Worker ulw $8, 2($9) 194*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 195*9880d681SAndroid Build Coastguard Worker ulw $8, 0x8000($9) 196*9880d681SAndroid Build Coastguard Worker# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 197*9880d681SAndroid Build Coastguard Worker 198*9880d681SAndroid Build Coastguard Worker jal foo 199*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 200*9880d681SAndroid Build Coastguard Worker .option pic2 201*9880d681SAndroid Build Coastguard Worker jal foo 202*9880d681SAndroid Build Coastguard Worker# CHECK: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 203*9880d681SAndroid Build Coastguard Worker .option pic0 204*9880d681SAndroid Build Coastguard Worker 205*9880d681SAndroid Build Coastguard Worker add $4, $5, $6 206*9880d681SAndroid Build Coastguard Worker# CHECK-NOT: [[@LINE-1]]:3: warning: macro instruction expanded into multiple instructions 207