[AArch64] Merge stores of D-register values with different modes
[official-gcc.git] / gcc / testsuite / gcc.c-torture / compile / pr32571.c
blob9592e3f36805bb072823dd9d3eed0d268d9af98f
2 struct list_head {
3 struct list_head *next, *prev;
4 };
5 struct ib_fmr {
6 int *device;
7 struct list_head list;
8 };
9 static inline
10 struct mthca_fmr *to_mfmr(struct ib_fmr *ibmr)
12 const struct ib_fmr *__mptr = (ibmr);
13 return (struct mthca_fmr *)( (char *)__mptr );
15 void mthca_unmap_fmr(struct list_head *fmr_list)
17 struct ib_fmr *fmr;
18 if (mthca_is_memfree())
20 for (fmr =
21 ({ const struct list_head *__mptr = ((fmr_list)->next); (struct ib_fmr *)(
22 (char *)__mptr - 8 );});
23 &fmr->list != (fmr_list);
24 fmr = ({ const struct list_head *__mptr = (fmr->list.next); (struct ib_fmr
25 *)( (char *)__mptr - 8);})
27 mthca_arbel_fmr_unmap(to_mfmr(fmr));
29 else
30 for (fmr =
31 ({ const struct list_head *__mptr = ((fmr_list)->next); (struct ib_fmr *)(
32 (char *)__mptr - 8);});
33 &fmr->list != (fmr_list);
34 fmr = ({ const struct list_head *__mptr = (fmr->list.next); (struct ib_fmr
35 *)( (char *)__mptr - 8);})
37 mthca_tavor_fmr_unmap(to_mfmr(fmr));