19db22db9SToma Tabacu# RUN: llvm-mc %s -triple=mipsel-unknown-linux -mcpu=mips32r2 -mattr=+msa | \ 29db22db9SToma Tabacu# RUN: FileCheck %s 39db22db9SToma Tabacu# .set push creates a copy of the current environment. 49db22db9SToma Tabacu# .set pop restores the previous environment. 59db22db9SToma Tabacu# FIXME: Also test resetting of .set macro/nomacro option. 69db22db9SToma Tabacu 79db22db9SToma Tabacu .text 89db22db9SToma Tabacu # The first environment on the stack (with initial values). 99db22db9SToma Tabacu lw $1, 65536($1) 109db22db9SToma Tabacu b 1336 119db22db9SToma Tabacu addvi.b $w15, $w13, 18 129db22db9SToma Tabacu 139db22db9SToma Tabacu # Create a new environment. 149db22db9SToma Tabacu .set push 159db22db9SToma Tabacu .set at=$ra # Test the ATReg option. 169db22db9SToma Tabacu lw $1, 65536($1) 179db22db9SToma Tabacu .set noreorder # Test the Reorder option. 189db22db9SToma Tabacu b 1336 199db22db9SToma Tabacu .set nomsa # Test the Features option (ASE). 209db22db9SToma Tabacu .set mips32r6 # Test the Features option (ISA). 219db22db9SToma Tabacu mod $2, $4, $6 229db22db9SToma Tabacu 239db22db9SToma Tabacu # Switch back to the first environment. 249db22db9SToma Tabacu .set pop 259db22db9SToma Tabacu lw $1, 65536($1) 269db22db9SToma Tabacu b 1336 279db22db9SToma Tabacu addvi.b $w15, $w13, 18 289db22db9SToma Tabacu 299db22db9SToma Tabacu# CHECK: lui $1, 1 309db22db9SToma Tabacu# CHECK: addu $1, $1, $1 319db22db9SToma Tabacu# CHECK: lw $1, 0($1) 329db22db9SToma Tabacu# CHECK: b 1336 339db22db9SToma Tabacu# CHECK: nop 349db22db9SToma Tabacu# CHECK: addvi.b $w15, $w13, 18 359db22db9SToma Tabacu 369db22db9SToma Tabacu# CHECK: .set push 379db22db9SToma Tabacu# CHECK: lui $ra, 1 389db22db9SToma Tabacu# CHECK: addu $ra, $ra, $1 399db22db9SToma Tabacu# CHECK: lw $1, 0($ra) 409db22db9SToma Tabacu# CHECK: .set noreorder 419db22db9SToma Tabacu# CHECK: b 1336 429db22db9SToma Tabacu# CHECK-NOT: nop 439db22db9SToma Tabacu# CHECK: .set nomsa 449db22db9SToma Tabacu# CHECK: .set mips32r6 459db22db9SToma Tabacu# CHECK: mod $2, $4, $6 469db22db9SToma Tabacu 479db22db9SToma Tabacu# CHECK: .set pop 489db22db9SToma Tabacu# CHECK: lui $1, 1 499db22db9SToma Tabacu# CHECK: addu $1, $1, $1 509db22db9SToma Tabacu# CHECK: lw $1, 0($1) 519db22db9SToma Tabacu# CHECK: b 1336 529db22db9SToma Tabacu# CHECK: nop 539db22db9SToma Tabacu# CHECK: addvi.b $w15, $w13, 18 54*465acfd1SToma Tabacu 55*465acfd1SToma Tabacu .set push 56*465acfd1SToma Tabacu .set dsp 57*465acfd1SToma Tabacu lbux $7, $10($11) 58*465acfd1SToma Tabacu .set pop 59*465acfd1SToma Tabacu 60*465acfd1SToma Tabacu .set push 61*465acfd1SToma Tabacu .set dsp 62*465acfd1SToma Tabacu lbux $7, $10($11) 63*465acfd1SToma Tabacu# CHECK-NOT: :[[@LINE-1]]:5: error: instruction requires a CPU feature not currently enabled 64*465acfd1SToma Tabacu .set pop 65*465acfd1SToma Tabacu 66*465acfd1SToma Tabacu .set push 67*465acfd1SToma Tabacu .set dsp 68*465acfd1SToma Tabacu lbux $7, $10($11) 69*465acfd1SToma Tabacu# CHECK-NOT: :[[@LINE-1]]:5: error: instruction requires a CPU feature not currently enabled 70*465acfd1SToma Tabacu .set pop 71