https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115210

            Bug ID: 115210
           Summary: Missed optimization opportunity in redundant copies
                    for large structure
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: user202729 at protonmail dot com
  Target Milestone: ---

Code:

```
struct A{
        //long long a[128];
        long long a_1, a_2, a_3, a_4, a_5, a_6, a_7, a_8, a_9, a_10, a_11,
a_12, a_13, a_14, a_15, a_16, a_17, a_18, a_19, a_20, a_21, a_22, a_23, a_24,
a_25, a_26, a_27, a_28, a_29, a_30, a_31, a_32, a_33, a_34, a_35, a_36, a_37,
a_38, a_39, a_40, a_41, a_42, a_43, a_44, a_45, a_46, a_47, a_48, a_49, a_50,
a_51, a_52, a_53, a_54, a_55, a_56, a_57, a_58, a_59, a_60, a_61, a_62, a_63,
a_64, a_65, a_66, a_67, a_68, a_69, a_70, a_71, a_72, a_73, a_74, a_75, a_76,
a_77, a_78, a_79, a_80, a_81, a_82, a_83, a_84, a_85, a_86, a_87, a_88, a_89,
a_90, a_91, a_92, a_93, a_94, a_95, a_96, a_97, a_98, a_99, a_100, a_101,
a_102, a_103, a_104, a_105, a_106, a_107, a_108, a_109, a_110, a_111, a_112,
a_113, a_114, a_115, a_116, a_117, a_118, a_119, a_120, a_121, a_122, a_123,
a_124, a_125, a_126, a_127, a_128;
};
void f(A& u){
        A v=u;
        A w=v;
        A x=w;
        u=x;
}
```

Both variants (with a large array or with a lot of fields) exhibits the bug. 4
occurrences of `rep movsq` are seen in the code.

Reply via email to