sw $2, small_data
.comm small_data, 4
When assembler is invoked with -G4, it should assume that `small_data' will be
$GP-addressable, so `sw' expands into a single instruction, and $AT is not used.
However, the assembler complains:
$ gcc.mips64 -G 4 noat.S
noat.S: Assembler messages:
noat.S:3: Error: Macro used $at after ".set noat"
The checking of the $AT usage in this case should be postponed until relaxation