1# RUN: llvm-mc %s -triple=mipsel-unknown-linux -show-encoding -mcpu=mips32r2 \
2# RUN:     2>%t1 | FileCheck %s
3# RUN: FileCheck -check-prefix=WARNINGS %s < %t1
4# Check that the assembler can handle the documented syntax
5# for ".set at" and set the correct value. The correct value for $at is always
6# $1 when written by the user.
7    .text
8foo:
9# CHECK:   jr    $1                      # encoding: [0x08,0x00,0x20,0x00]
10# WARNINGS: :[[@LINE+2]]:11: warning: used $at without ".set noat"
11    .set    at=$1
12    jr    $at
13
14# CHECK:   jr    $1                      # encoding: [0x08,0x00,0x20,0x00]
15# WARNINGS: :[[@LINE+2]]:11: warning: used $at without ".set noat"
16    .set    at=$1
17    jr    $1
18# WARNINGS-NOT: warning: used $at without ".set noat"
19
20# CHECK:   jr    $1                      # encoding: [0x08,0x00,0x20,0x00]
21    .set    at=$2
22    jr    $at
23# CHECK:   jr    $1                      # encoding: [0x08,0x00,0x20,0x00]
24    .set    at=$3
25    jr    $at
26# CHECK:   jr    $1                      # encoding: [0x08,0x00,0x20,0x00]
27    .set noat
28    jr    $at
29# CHECK:   jr    $1                      # encoding: [0x08,0x00,0x20,0x00]
30    .set at=$0
31    jr    $at
32
33# CHECK:   jr    $16                     # encoding: [0x08,0x00,0x00,0x02]
34# WARNINGS: :[[@LINE+2]]:11: warning: used $16 with ".set at=$16"
35    .set    at=$16
36    jr    $s0
37
38# CHECK:   jr    $16                     # encoding: [0x08,0x00,0x00,0x02]
39# WARNINGS: :[[@LINE+2]]:11: warning: used $16 with ".set at=$16"
40    .set    at=$16
41    jr    $16
42# WARNINGS-NOT: warning
43