Issue |
148659
|
Summary |
[AArch64] Expected a GPR64common register, but got a GPR64sp register
|
Labels |
backend:AArch64
|
Assignees |
|
Reporter |
sjoerdmeijer
|
For a build with expensive checks enabled, this input:
```
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32"
target triple = "aarch64-unknown-linux-gnu"
define void @_Z4testatjatabyxsxtthtaiPA17_hPA17_aS0_PiPA17_S1_PyS5_PA17_tPA17_S7_PA17_A17_iS5_SA_PA17_A17_yPA17_A17_jSA_SD_PA17_A17_s(i8 %var_0, i32 %var_3, i8 %var_4, i1 %var_7, i16 %var_12, i8 %var_14, ptr %arr_23, ptr %arr_40, i32 %or377, i64 %0, i64 %indvars.iv827, i64 %idxprom400.us.us, i64 %idxprom, ptr %arrayidx374.us.us.us, ptr %var_30, ptr %var_31, ptr %var_32, ptr %arrayidx414.us.us.us, ptr %1, ptr %var_33) #0 {
entry:
br label %for.body
for.body: ; preds = %for.cond457.preheader.us.us.us, %entry
br label %for.body350.us.us
for.body350.us.us: ; preds = %for.cond457.preheader.us.us.us, %for.body
%indvars.iv82710 = phi i64 [ %indvars.iv.next828, %for.cond457.preheader.us.us.us ], [ %0, %for.body ]
%conv347727.us.us11 = phi i32 [ %5, %for.cond457.preheader.us.us.us ], [ %or377, %for.body ]
%add387.us.us = add i32 %conv347727.us.us11, 1
%idxprom388.us.us = zext i32 %add387.us.us to i64
%arrayidx401.us.us = getelementptr [17 x [17 x i32]], ptr %arr_40, i64 %idxprom388.us.us, i64 %indvars.iv827, i64 %idxprom400.us.us
store i8 %var_0, ptr %arr_23, align 1
store i16 %var_12, ptr %var_30, align 2
br label %for.body383.us.us.us
for.body383.us.us.us: ; preds = %for.body383.us.us.us, %for.body350.us.us
%indvars.iv82416 = phi i64 [ %indvars.iv.next825, %for.body383.us.us.us ], [ 0, %for.body350.us.us ]
%2 = phi i8 [ 0, %for.body383.us.us.us ], [ %var_14, %for.body350.us.us ]
store i8 %var_4, ptr %var_31, align 1
%3 = load i32, ptr %arrayidx401.us.us, align 4
%cmp404.us.us.us = icmp sle i32 %3, %var_3
%conv405.us.us.us = zext i1 %cmp404.us.us.us to i8
store i8 %conv405.us.us.us, ptr %var_32, align 1
%arrayidx425.us.us.us = getelementptr [17 x [17 x i32]], ptr %arr_23, i64 %indvars.iv82710, i64 4307, i64 %indvars.iv82416
%arrayidx414.us.us.us17 = getelementptr [17 x [17 x i16]], ptr null, i64 0, i64 %indvars.iv82416, i64 0
store i8 0, ptr %1, align 1
store i64 %idxprom, ptr %var_33, align 8
%4 = load i32, ptr %arrayidx425.us.us.us, align 4
store i8 %2, ptr %arrayidx414.us.us.us, align 1
store i64 1, ptr %arrayidx374.us.us.us, align 8
%indvars.iv.next825 = add i64 %indvars.iv82416, 1
br i1 %var_7, label %for.body383.us.us.us, label %for.cond457.preheader.us.us.us
for.cond457.preheader.us.us.us: ; preds = %for.body383.us.us.us
%indvars.iv.next828 = add i64 %indvars.iv82710, 1
%5 = trunc i64 %indvars.iv.next828 to i32
%cmp348.us.us = icmp ult i64 %indvars.iv82710, 0
br i1 %cmp348.us.us, label %for.body350.us.us, label %for.body
}
attributes #0 = { "frame-pointer"="non-leaf" "target-cpu"="grace" }
```
runs into this error:
```
*** Bad machine code: Illegal virtual register for instruction ***
- function: _Z4testatjatabyxsxtthtaiPA17_hPA17_aS0_PiPA17_S1_PyS5_PA17_tPA17_S7_PA17_A17_iS5_SA_PA17_A17_yPA17_A17_jSA_SD_PA17_A17_s
- basic block: %bb.137 (0xaaaaaf9ba718) [32608B;32720B)
- instruction: 32672B undef %526.sub_32:gpr64sp = LDRWui %stack.36, 0 :: (load (s32) from %stack.36)
- operand 0: undef %526.sub_32:gpr64sp
Expected a GPR64common register, but got a GPR64sp register
*** Bad machine code: Illegal virtual register for instruction ***
- function: _Z4testatjatabyxsxtthtaiPA17_hPA17_aS0_PiPA17_S1_PyS5_PA17_tPA17_S7_PA17_A17_iS5_SA_PA17_A17_yPA17_A17_jSA_SD_PA17_A17_s
- basic block: %bb.99 for.body350.us.us.preheader (0xaaaaaf7feb10) [32720B;32832B)
- instruction: 32800B undef %494.sub_32:gpr64sp = LDRWui %stack.36, 0 :: (load (s32) from %stack.36)
- operand 0: undef %494.sub_32:gpr64sp
Expected a GPR64common register, but got a GPR64sp register
LLVM ERROR: Found 2 machine code errors.
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs