; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2 ; RUN: llc -mtriple=aarch64 -mattr=+sha3 < %s | FileCheck --check-prefixes=SHA3,SHA3-SD %s ; RUN: llc -mtriple=aarch64 -mattr=-sha3 < %s | FileCheck --check-prefixes=NOSHA3,NOSHA3-SD %s ; RUN: llc -mtriple=aarch64 -mattr=+sha3 < %s -global-isel | FileCheck --check-prefixes=SHA3,SHA3-GI %s ; RUN: llc -mtriple=aarch64 -mattr=-sha3 < %s -global-isel | FileCheck --check-prefixes=NOSHA3,NOSHA3-GI %s define <2 x i64> @rax1(<2 x i64> %x, <2 x i64> %y) { ; SHA3-SD-LABEL: rax1: ; SHA3-SD: // %bb.0: ; SHA3-SD-NEXT: rax1 v0.2d, v0.2d, v1.2d ; SHA3-SD-NEXT: ret ; ; NOSHA3-SD-LABEL: rax1: ; NOSHA3-SD: // %bb.0: ; NOSHA3-SD-NEXT: add v2.2d, v1.2d, v1.2d ; NOSHA3-SD-NEXT: usra v2.2d, v1.2d, #63 ; NOSHA3-SD-NEXT: eor v0.16b, v0.16b, v2.16b ; NOSHA3-SD-NEXT: ret ; ; SHA3-GI-LABEL: rax1: ; SHA3-GI: // %bb.0: ; SHA3-GI-NEXT: shl v2.2d, v1.2d, #1 ; SHA3-GI-NEXT: usra v2.2d, v1.2d, #63 ; SHA3-GI-NEXT: eor v0.16b, v0.16b, v2.16b ; SHA3-GI-NEXT: ret ; ; NOSHA3-GI-LABEL: rax1: ; NOSHA3-GI: // %bb.0: ; NOSHA3-GI-NEXT: shl v2.2d, v1.2d, #1 ; NOSHA3-GI-NEXT: usra v2.2d, v1.2d, #63 ; NOSHA3-GI-NEXT: eor v0.16b, v0.16b, v2.16b ; NOSHA3-GI-NEXT: ret %a = call <2 x i64> @llvm.fshl.v2i64(<2 x i64> %y, <2 x i64> %y, <2 x i64> ) %b = xor <2 x i64> %x, %a ret <2 x i64> %b } declare <2 x i64> @llvm.fshl.v2i64(<2 x i64>, <2 x i64>, <2 x i64>) ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line: ; NOSHA3: {{.*}} ; SHA3: {{.*}}