; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 6 ; RUN: llc < %s -mtriple=aarch64 | FileCheck %s define <2 x i8> @src_a(<2 x i1> %a, <2 x i8> %b, <2 x i8> %c, <2 x i8> %d) { ; CHECK-LABEL: src_a: ; CHECK: // %bb.0: ; CHECK-NEXT: shl v0.2s, v0.2s, #31 ; CHECK-NEXT: cmlt v0.2s, v0.2s, #0 ; CHECK-NEXT: bif v1.8b, v2.8b, v0.8b ; CHECK-NEXT: bsl v0.8b, v1.8b, v3.8b ; CHECK-NEXT: ret %s = select <2 x i1> %a, <2 x i8> %b, <2 x i8> %c %t = select <2 x i1> %a, <2 x i8> %s, <2 x i8> %d ret <2 x i8> %t } define <2 x i8> @tgt_a(<2 x i1> %a, <2 x i8> %b, <2 x i8> %c, <2 x i8> %d) { ; CHECK-LABEL: tgt_a: ; CHECK: // %bb.0: ; CHECK-NEXT: shl v0.2s, v0.2s, #31 ; CHECK-NEXT: cmlt v0.2s, v0.2s, #0 ; CHECK-NEXT: bsl v0.8b, v1.8b, v3.8b ; CHECK-NEXT: ret %t = select <2 x i1> %a, <2 x i8> %b, <2 x i8> %d ret <2 x i8> %t } define <2 x i8> @src_b(<2 x i1> %a, <2 x i8> %b, <2 x i8> %c, <2 x i8> %d) { ; CHECK-LABEL: src_b: ; CHECK: // %bb.0: ; CHECK-NEXT: shl v0.2s, v0.2s, #31 ; CHECK-NEXT: cmlt v0.2s, v0.2s, #0 ; CHECK-NEXT: bif v1.8b, v2.8b, v0.8b ; CHECK-NEXT: bsl v0.8b, v3.8b, v1.8b ; CHECK-NEXT: ret %s = select <2 x i1> %a, <2 x i8> %b, <2 x i8> %c %t = select <2 x i1> %a, <2 x i8> %d, <2 x i8> %s ret <2 x i8> %t } define <2 x i8> @tgt_b(<2 x i1> %a, <2 x i8> %b, <2 x i8> %c, <2 x i8> %d) { ; CHECK-LABEL: tgt_b: ; CHECK: // %bb.0: ; CHECK-NEXT: shl v0.2s, v0.2s, #31 ; CHECK-NEXT: cmlt v0.2s, v0.2s, #0 ; CHECK-NEXT: bsl v0.8b, v3.8b, v2.8b ; CHECK-NEXT: ret %t = select <2 x i1> %a, <2 x i8> %d, <2 x i8> %c ret <2 x i8> %t }