blob: 9da8cad1a0b2c4315af08500dfb4377f0ab7483b [file] [edit]
; 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
}