https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116693
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Last reconfirmed| |2024-09-12 --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Confirmed. Either tlsdesc should be marked as cannot copy (via TARGET_CANNOT_COPY_INSN_P hook which on riscv uses get_attr_cannot_copy) or use %= . This is the simple cannot copy patch: diff --git a/gcc/config/riscv/riscv.md b/gcc/config/riscv/riscv.md index 9f94b5aa023..906c826d402 100644 --- a/gcc/config/riscv/riscv.md +++ b/gcc/config/riscv/riscv.md @@ -2341,6 +2341,7 @@ (define_insn "@tlsdesc<mode>" } [(set_attr "type" "multi") (set_attr "length" "16") + (set_attr "cannot_copy" "yes") (set_attr "mode" "<MODE>")]) (define_insn "auipc<mode>"