diff --git a/llvm/lib/Target/PowerPC/PPCCallingConv.td b/llvm/lib/Target/PowerPC/PPCCallingConv.td --- a/llvm/lib/Target/PowerPC/PPCCallingConv.td +++ b/llvm/lib/Target/PowerPC/PPCCallingConv.td @@ -362,8 +362,8 @@ def CSR_64_AllRegs_VSX : CalleeSavedRegs<(add CSR_64_AllRegs_Altivec, (sequence "VSL%u", 0, 31))>; -def CSR_64_AllRegs_AIX_Dflt_VSX : CalleeSavedRegs<(add CSR_64_AllRegs_Altivec, - (sequence "VSL%u", 0, 19))>; +def CSR_64_AllRegs_AIX_Dflt_VSX : CalleeSavedRegs<(add CSR_64_AllRegs_AIX_Dflt_Altivec, + (sequence "VSL%u", 0, 31))>; def CSR_ALL_VSRP : CalleeSavedRegs<(sequence "VSRp%u", 0, 31)>; diff --git a/llvm/test/CodeGen/PowerPC/aix64-patchpoint-regmask.ll b/llvm/test/CodeGen/PowerPC/aix64-patchpoint-regmask.ll --- a/llvm/test/CodeGen/PowerPC/aix64-patchpoint-regmask.ll +++ b/llvm/test/CodeGen/PowerPC/aix64-patchpoint-regmask.ll @@ -1,8 +1,19 @@ ; RUN: llc -O0 -verify-machineinstrs -mcpu=pwr9 -mtriple powerpc64-ibm-aix-xcoff -print-after=finalize-isel --print-regmask-num-regs=-1 < %s 2>&1 | \ ; RUN: FileCheck %s -; Error regmask pattern should be fixed: v20:v31 should be reserved in AIX defalut ABI -; CHECK: PATCHPOINT{{[^<]+}}]+}} $v20 $v21 $v22 $v23 $v24 $v25 $v26 $v27 $v28 $v29 $v30 $v31 {{[^>]+}}> +; CHECK-NOT: PATCHPOINT{{[^<]+}}]+}} $v20 $v21 $v22 $v23 $v24 $v25 $v26 $v27 $v28 $v29 $v30 $v31 {{[^>]+}}> +; CHECK-NOT: PATCHPOINT{{[^<]+}}]+}} $v20 {{[^>]+}}> +; CHECK-NOT: PATCHPOINT{{[^<]+}}]+}} $v21 {{[^>]+}}> +; CHECK-NOT: PATCHPOINT{{[^<]+}}]+}} $v22 {{[^>]+}}> +; CHECK-NOT: PATCHPOINT{{[^<]+}}]+}} $v23 {{[^>]+}}> +; CHECK-NOT: PATCHPOINT{{[^<]+}}]+}} $v24 {{[^>]+}}> +; CHECK-NOT: PATCHPOINT{{[^<]+}}]+}} $v25 {{[^>]+}}> +; CHECK-NOT: PATCHPOINT{{[^<]+}}]+}} $v26 {{[^>]+}}> +; CHECK-NOT: PATCHPOINT{{[^<]+}}]+}} $v27 {{[^>]+}}> +; CHECK-NOT: PATCHPOINT{{[^<]+}}]+}} $v28 {{[^>]+}}> +; CHECK-NOT: PATCHPOINT{{[^<]+}}]+}} $v29 {{[^>]+}}> +; CHECK-NOT: PATCHPOINT{{[^<]+}}]+}} $v30 {{[^>]+}}> +; CHECK-NOT: PATCHPOINT{{[^<]+}}]+}} $v31 {{[^>]+}}> define void @test(i64 %p1, i64 %p2, i64 %p3, i64 %p4) { entry: call anyregcc void (i64, i32, ptr, i32, ...) @llvm.experimental.patchpoint.void(i64 13, i32 40, ptr inttoptr (i64 0 to ptr), i32 2, i64 %p1, i64 %p2, i64 %p3, i64 %p4)