brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · 65da95e Raw
40 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 32; RUN: llc < %s -mtriple=aarch64 | FileCheck %s --check-prefix=CHECKLE3; RUN: llc < %s -mtriple=aarch64_be | FileCheck %s --check-prefix=CHECKBE4 5define <4 x i16> @test_reconstructshuffle(<16 x i8> %a, <16 x i8> %b) nounwind {6; CHECKLE-LABEL: test_reconstructshuffle:7; CHECKLE:       // %bb.0:8; CHECKLE-NEXT:    mov b2, v0.b[3]9; CHECKLE-NEXT:    ext v1.16b, v1.16b, v1.16b, #810; CHECKLE-NEXT:    mov v2.b[2], v0.b[2]11; CHECKLE-NEXT:    mov v2.b[4], v0.b[1]12; CHECKLE-NEXT:    mov v2.b[6], v0.b[0]13; CHECKLE-NEXT:    zip2 v0.8b, v1.8b, v0.8b14; CHECKLE-NEXT:    add v0.4h, v2.4h, v0.4h15; CHECKLE-NEXT:    bic v0.4h, #255, lsl #816; CHECKLE-NEXT:    ret17;18; CHECKBE-LABEL: test_reconstructshuffle:19; CHECKBE:       // %bb.0:20; CHECKBE-NEXT:    rev64 v0.16b, v0.16b21; CHECKBE-NEXT:    rev64 v1.16b, v1.16b22; CHECKBE-NEXT:    ext v0.16b, v0.16b, v0.16b, #823; CHECKBE-NEXT:    ext v1.16b, v1.16b, v1.16b, #824; CHECKBE-NEXT:    mov b2, v0.b[3]25; CHECKBE-NEXT:    ext v1.16b, v1.16b, v1.16b, #826; CHECKBE-NEXT:    mov v2.b[2], v0.b[2]27; CHECKBE-NEXT:    mov v2.b[4], v0.b[1]28; CHECKBE-NEXT:    mov v2.b[6], v0.b[0]29; CHECKBE-NEXT:    zip2 v0.8b, v1.8b, v0.8b30; CHECKBE-NEXT:    add v0.4h, v2.4h, v0.4h31; CHECKBE-NEXT:    bic v0.4h, #255, lsl #832; CHECKBE-NEXT:    rev64 v0.4h, v0.4h33; CHECKBE-NEXT:    ret34  %tmp1 = shufflevector <16 x i8> %a, <16 x i8> undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0>35  %tmp2 = shufflevector <16 x i8> %b, <16 x i8> undef, <4 x i32> <i32 12, i32 13, i32 14, i32 15>36  %tmp3 = add <4 x i8> %tmp1, %tmp237  %tmp4 = zext <4 x i8> %tmp3 to <4 x i16>38  ret <4 x i16> %tmp439}40