Issue 71158
Summary [AArch64_32][bug] -O1 will let the 32bit register to 64bit register of Pointer
Labels new issue
Assignees
Reporter ls-Mou
    demo:
```
typedef struct {
  int a;
  int b;
} context_t;
static inline void InitSysContextFields(context_t * tmp) {
   tmp->a = 1;
   tmp->b = 0;
}
int CommonPreparePrologue(context_t * tmp) {
  if (!tmp) return 0;
  InitSysContextFields(tmp);
  return (tmp->a + tmp->b);
}
```
-O0 CommonPreparePrologue through w register to pass attribute
![image](https://github.com/llvm/llvm-project/assets/149390011/ad40105b-c56d-43a7-948b-3b0213371a7f)

-O1 CommonPreparePrologue through x register to pass attribute
![image](https://github.com/llvm/llvm-project/assets/149390011/fe3cd661-ce16-4688-8ec4-42e395f66e49)
https://godbolt.org/z/fn5EjWxE6
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to