diff --git a/llvm/test/CodeGen/AArch64/neon-abd.ll b/llvm/test/CodeGen/AArch64/neon-abd.ll index 98833d36dbb9..bf2f736b081b 100644 --- a/llvm/test/CodeGen/AArch64/neon-abd.ll +++ b/llvm/test/CodeGen/AArch64/neon-abd.ll @@ -557,13 +557,12 @@ define <2 x i32> @combine_sabd_2s_zerosign_negative(<2 x i32> %a, <2 x i32> %b) ; select pattern with constant and type shrinking define <8 x i32> @sabd_8h_splat_imm(<8 x i16> %a) { ; CHECK-LABEL: sabd_8h_splat_imm: -; CHECK: // %bb.0: // %entry +; CHECK: // %bb.0: ; CHECK-NEXT: movi v2.4h, #89 ; CHECK-NEXT: movi v1.8h, #89 ; CHECK-NEXT: sabdl2 v1.4s, v0.8h, v1.8h ; CHECK-NEXT: sabdl v0.4s, v0.4h, v2.4h ; CHECK-NEXT: ret -entry: %conv = sext <8 x i16> %a to <8 x i32> %sub = sub <8 x i32> %conv, splat(i32 89) %cmp.i = icmp slt <8 x i32> %sub, splat(i32 0) @@ -577,13 +576,12 @@ entry: ; ... with uabd define <8 x i32> @uabd_8h_splat_imm(<8 x i16> %a) { ; CHECK-LABEL: uabd_8h_splat_imm: -; CHECK: // %bb.0: // %entry +; CHECK: // %bb.0: ; CHECK-NEXT: movi v2.4h, #89 ; CHECK-NEXT: movi v1.8h, #89 ; CHECK-NEXT: uabdl2 v1.4s, v0.8h, v1.8h ; CHECK-NEXT: uabdl v0.4s, v0.4h, v2.4h ; CHECK-NEXT: ret -entry: %conv = zext <8 x i16> %a to <8 x i32> %sub = sub <8 x i32> %conv, splat(i32 89) %cmp.i = icmp slt <8 x i32> %sub, splat(i32 0) @@ -597,7 +595,7 @@ entry: ; And now it's buildvector of const define <8 x i32> @sabd_8h_bv_imm(<8 x i16> %a) { ; CHECK-LABEL: sabd_8h_bv_imm: -; CHECK: // %bb.0: // %entry +; CHECK: // %bb.0: ; CHECK-NEXT: mov x9, #549747425280 // =0x7fff800000 ; CHECK-NEXT: ext v1.16b, v0.16b, v0.16b, #8 ; CHECK-NEXT: adrp x8, .LCPI45_0 @@ -607,7 +605,6 @@ define <8 x i32> @sabd_8h_bv_imm(<8 x i16> %a) { ; CHECK-NEXT: sabdl v0.4s, v0.4h, v2.4h ; CHECK-NEXT: sabdl v1.4s, v1.4h, v3.4h ; CHECK-NEXT: ret -entry: %conv = sext <8 x i16> %a to <8 x i32> %sub = sub <8 x i32> %conv, %cmp.i = icmp slt <8 x i32> %sub, splat(i32 0) @@ -621,7 +618,7 @@ entry: ; ... uabd version define <8 x i32> @uabd_8h_bv_imm(<8 x i16> %a) { ; CHECK-LABEL: uabd_8h_bv_imm: -; CHECK: // %bb.0: // %entry +; CHECK: // %bb.0: ; CHECK-NEXT: ext v1.16b, v0.16b, v0.16b, #8 ; CHECK-NEXT: adrp x8, .LCPI46_0 ; CHECK-NEXT: adrp x9, .LCPI46_1 @@ -630,7 +627,6 @@ define <8 x i32> @uabd_8h_bv_imm(<8 x i16> %a) { ; CHECK-NEXT: uabdl v0.4s, v0.4h, v3.4h ; CHECK-NEXT: uabdl v1.4s, v1.4h, v2.4h ; CHECK-NEXT: ret -entry: %conv = zext <8 x i16> %a to <8 x i32> %sub = sub <8 x i32> %conv, %cmp.i = icmp slt <8 x i32> %sub, splat(i32 0) @@ -644,7 +640,7 @@ entry: ; And now it's buildvector with sext and constants define <4 x i32> @sabd_4h_bv_non_imm(<4 x i16> %a, i16 %b) { ; CHECK-LABEL: sabd_4h_bv_non_imm: -; CHECK: // %bb.0: // %entry +; CHECK: // %bb.0: ; CHECK-NEXT: sxth w9, w0 ; CHECK-NEXT: mov w8, #-128 // =0xffffff80 ; CHECK-NEXT: sshll v0.4s, v0.4h, #0 @@ -656,7 +652,6 @@ define <4 x i32> @sabd_4h_bv_non_imm(<4 x i16> %a, i16 %b) { ; CHECK-NEXT: mov v1.s[3], w8 ; CHECK-NEXT: sabd v0.4s, v0.4s, v1.4s ; CHECK-NEXT: ret -entry: %conv = sext <4 x i16> %a to <4 x i32> %exted.b = sext i16 %b to i32 %ze.vec = insertelement <4 x i32> , i32 %exted.b, i32 0 @@ -672,7 +667,7 @@ entry: ; ... uabd define <4 x i32> @uabd_4h_bv_non_imm(<4 x i16> %a, i16 %b) { ; CHECK-LABEL: uabd_4h_bv_non_imm: -; CHECK: // %bb.0: // %entry +; CHECK: // %bb.0: ; CHECK-NEXT: and w9, w0, #0xffff ; CHECK-NEXT: mov w8, #64000 // =0xfa00 ; CHECK-NEXT: ushll v0.4s, v0.4h, #0 @@ -684,7 +679,6 @@ define <4 x i32> @uabd_4h_bv_non_imm(<4 x i16> %a, i16 %b) { ; CHECK-NEXT: mov v1.s[3], w8 ; CHECK-NEXT: uabd v0.4s, v1.4s, v0.4s ; CHECK-NEXT: ret -entry: %conv = zext <4 x i16> %a to <4 x i32> %exted.b = zext i16 %b to i32 %ze.vec = insertelement <4 x i32> , i32 %exted.b, i32 0 @@ -700,7 +694,7 @@ entry: ; negative: immediate wont fit in signed i16 define <8 x i32> @sabd_8s_splat_imm_no_shrink(<8 x i16> %a) { ; CHECK-LABEL: sabd_8s_splat_imm_no_shrink: -; CHECK: // %bb.0: // %entry +; CHECK: // %bb.0: ; CHECK-NEXT: movi v1.4s, #250, lsl #8 ; CHECK-NEXT: sshll2 v2.4s, v0.8h, #0 ; CHECK-NEXT: sshll v0.4s, v0.4h, #0 @@ -709,7 +703,6 @@ define <8 x i32> @sabd_8s_splat_imm_no_shrink(<8 x i16> %a) { ; CHECK-NEXT: bic v1.4s, #3, lsl #16 ; CHECK-NEXT: bic v0.4s, #3, lsl #16 ; CHECK-NEXT: ret -entry: %conv = sext <8 x i16> %a to <8 x i32> %sub = sub <8 x i32> %conv, splat(i32 64000) %cmp.i = icmp slt <8 x i32> %sub, splat(i32 0) @@ -723,7 +716,7 @@ entry: ; negative: value out of range of unsigned i16 define <8 x i32> @uabd_8s_splat_imm_no_shrink(<8 x i16> %a) { ; CHECK-LABEL: uabd_8s_splat_imm_no_shrink: -; CHECK: // %bb.0: // %entry +; CHECK: // %bb.0: ; CHECK-NEXT: movi v1.2d, #0xffffffffffffffff ; CHECK-NEXT: ushll2 v2.4s, v0.8h, #0 ; CHECK-NEXT: ushll v0.4s, v0.4h, #0 @@ -733,7 +726,6 @@ define <8 x i32> @uabd_8s_splat_imm_no_shrink(<8 x i16> %a) { ; CHECK-NEXT: and v1.16b, v1.16b, v3.16b ; CHECK-NEXT: and v0.16b, v0.16b, v3.16b ; CHECK-NEXT: ret -entry: %conv = zext <8 x i16> %a to <8 x i32> %sub = sub <8 x i32> %conv, splat(i32 -1) %cmp.i = icmp slt <8 x i32> %sub, splat(i32 0)