diff --git a/llvm/lib/Target/Sparc/SparcInstrAliases.td b/llvm/lib/Target/Sparc/SparcInstrAliases.td index 673a2db59b092..cfc0b4735c91c 100644 --- a/llvm/lib/Target/Sparc/SparcInstrAliases.td +++ b/llvm/lib/Target/Sparc/SparcInstrAliases.td @@ -605,6 +605,8 @@ def : InstAlias<"unimp", (UNIMP 0), 0>; // interchangeable with `unimp` all the time. def : MnemonicAlias<"illtrap", "unimp">; +def : MnemonicAlias<"setuw", "set">; + def : MnemonicAlias<"iflush", "flush">; def : MnemonicAlias<"stub", "stb">; diff --git a/llvm/test/MC/Sparc/sparc-synthetic-instructions.s b/llvm/test/MC/Sparc/sparc-synthetic-instructions.s index 5652f86841950..9c6db2836af17 100644 --- a/llvm/test/MC/Sparc/sparc-synthetic-instructions.s +++ b/llvm/test/MC/Sparc/sparc-synthetic-instructions.s @@ -54,6 +54,13 @@ ! CHECK: ! fixup A - offset: 0, value: %lo(2147483647), kind: fixup_sparc_lo10 set 2147483647, %o1 + !! setuw is a mnemonic alias for set. + ! CHECK: sethi %hi(32768), %g1 ! encoding: [0x03,0b00AAAAAA,A,A] + ! CHECK: ! fixup A - offset: 0, value: %hi(32768), kind: fixup_sparc_hi22 + setuw 32768, %g1 + ! CHECK: mov 1, %g1 ! encoding: [0x82,0x10,0x20,0x01] + setuw 1, %g1 + ! CHECK: xnor %g1, %g0, %g2 ! encoding: [0x84,0x38,0x40,0x00] not %g1, %g2 ! CHECK: xnor %g1, %g0, %g1 ! encoding: [0x82,0x38,0x40,0x00]