[GlobalISel] Fold bitcast(undef) to undef. (#111491)
As with other operations such as trunc and fp converts, it should be valid to convert bitcast(undef) to undef.
This commit is contained in:
parent
ada6372e52
commit
3bf33ecec8
@ -420,7 +420,7 @@ def unary_undef_to_zero: GICombineRule<
|
||||
// replaced with undef.
|
||||
def propagate_undef_any_op: GICombineRule<
|
||||
(defs root:$root),
|
||||
(match (wip_match_opcode G_ADD, G_FPTOSI, G_FPTOUI, G_SUB, G_XOR, G_TRUNC):$root,
|
||||
(match (wip_match_opcode G_ADD, G_FPTOSI, G_FPTOUI, G_SUB, G_XOR, G_TRUNC, G_BITCAST):$root,
|
||||
[{ return Helper.matchAnyExplicitUseIsUndef(*${root}); }]),
|
||||
(apply [{ Helper.replaceInstWithUndef(*${root}); }])>;
|
||||
|
||||
|
||||
@ -189,9 +189,6 @@ define <8 x i16> @concat_v8s16_v2s16(ptr %ptr) {
|
||||
; CHECK-GI-NEXT: xtn v0.4h, v0.4s
|
||||
; CHECK-GI-NEXT: fmov w8, s0
|
||||
; CHECK-GI-NEXT: mov v0.s[0], w8
|
||||
; CHECK-GI-NEXT: mov v0.s[1], w8
|
||||
; CHECK-GI-NEXT: mov v0.s[2], w8
|
||||
; CHECK-GI-NEXT: mov v0.s[3], w8
|
||||
; CHECK-GI-NEXT: ret
|
||||
%a = load <2 x i16>, ptr %ptr
|
||||
%b = shufflevector <2 x i16> %a, <2 x i16> %a, <8 x i32> <i32 0, i32 1, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
|
||||
@ -199,18 +196,10 @@ define <8 x i16> @concat_v8s16_v2s16(ptr %ptr) {
|
||||
}
|
||||
|
||||
define <16 x i8> @concat_v16s8_v4s8(ptr %ptr) {
|
||||
; CHECK-SD-LABEL: concat_v16s8_v4s8:
|
||||
; CHECK-SD: // %bb.0:
|
||||
; CHECK-SD-NEXT: ldr s0, [x0]
|
||||
; CHECK-SD-NEXT: ret
|
||||
;
|
||||
; CHECK-GI-LABEL: concat_v16s8_v4s8:
|
||||
; CHECK-GI: // %bb.0:
|
||||
; CHECK-GI-NEXT: ldr s0, [x0]
|
||||
; CHECK-GI-NEXT: mov v0.s[1], w8
|
||||
; CHECK-GI-NEXT: mov v0.s[2], w8
|
||||
; CHECK-GI-NEXT: mov v0.s[3], w8
|
||||
; CHECK-GI-NEXT: ret
|
||||
; CHECK-LABEL: concat_v16s8_v4s8:
|
||||
; CHECK: // %bb.0:
|
||||
; CHECK-NEXT: ldr s0, [x0]
|
||||
; CHECK-NEXT: ret
|
||||
%a = load <4 x i8>, ptr %ptr
|
||||
%b = shufflevector <4 x i8> %a, <4 x i8> %a, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
|
||||
ret <16 x i8> %b
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user