[llvm] SystemZ: Implement copyPhysReg between vr128 and gr128 (PR #90616)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Wed May 1 02:10:17 PDT 2024


arsenm wrote:

> I got an error with the verifier on this test case. Fixed with:
> 
> ```
> diff --git a/llvm/test/CodeGen/SystemZ/copy-phys-reg-gr128-to-vr128.mir b/llvm/test/CodeGen/SystemZ/copy-phys-reg-gr128-to-vr128.mir
> index a2a07ac5c7f5..6711da657481 100644
> --- a/llvm/test/CodeGen/SystemZ/copy-phys-reg-gr128-to-vr128.mir
> +++ b/llvm/test/CodeGen/SystemZ/copy-phys-reg-gr128-to-vr128.mir
> @@ -51,9 +51,9 @@ name:            copy_gr128_to_vr128__r0q_to_v0_subreg0
>  tracksRegLiveness: true
>  body:             |
>    bb.0:
> -    liveins: $r0d
> +    liveins: $r0q
>      ; CHECK-LABEL: name: copy_gr128_to_vr128__r0q_to_v0_subreg0
> -    ; CHECK: liveins: $r0d
> +    ; CHECK: liveins: $r0q
>      ; CHECK-NEXT: {{  $}}
>      ; CHECK-NEXT: $v0 = VLVGP $r0d, $r1d
>      ; CHECK-NEXT: Return implicit $v0
> @@ -66,9 +66,9 @@ name:            copy_gr128_to_vr128__r0q_to_v0_subreg1
>  tracksRegLiveness: true
>  body:             |
>    bb.0:
> -    liveins: $r1d
> +    liveins: $r0q
>      ; CHECK-LABEL: name: copy_gr128_to_vr128__r0q_to_v0_subreg1
> -    ; CHECK: liveins: $r1d
> +    ; CHECK: liveins: $r0q
>      ; CHECK-NEXT: {{  $}}
>      ; CHECK-NEXT: $v0 = VLVGP $r0d, $r1d
>      ; CHECK-NEXT: Return implicit $v0
> ```
> 
> ok to commit?

I think the correct fix is to add undef to the missing half. The liveness is supposed to be introduced by the copy here 

https://github.com/llvm/llvm-project/pull/90616


More information about the llvm-commits mailing list