diff options
| author | Sjoerd Meijer <sjoerd.meijer@arm.com> | 2018-08-08 13:26:38 +0000 |
|---|---|---|
| committer | Sjoerd Meijer <sjoerd.meijer@arm.com> | 2018-08-08 13:26:38 +0000 |
| commit | f8c394f0f5d7be43a4d9ab1d384da9112de57cb2 (patch) | |
| tree | f680a099b12ff4294bc3bec03a1492af6ce6143e /llvm/test | |
| parent | ef9af05539d9cb7f11346588fbe719f30712b638 (diff) | |
| download | bcm5719-llvm-f8c394f0f5d7be43a4d9ab1d384da9112de57cb2.tar.gz bcm5719-llvm-f8c394f0f5d7be43a4d9ab1d384da9112de57cb2.zip | |
[ARM] FP16: codegen support for VEXT
Differential Revision: https://reviews.llvm.org/D50427
llvm-svn: 339241
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/CodeGen/ARM/armv8.2a-fp16-vector-intrinsics.ll | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/llvm/test/CodeGen/ARM/armv8.2a-fp16-vector-intrinsics.ll b/llvm/test/CodeGen/ARM/armv8.2a-fp16-vector-intrinsics.ll index 6afad0c9324..0daf9946bf7 100644 --- a/llvm/test/CodeGen/ARM/armv8.2a-fp16-vector-intrinsics.ll +++ b/llvm/test/CodeGen/ARM/armv8.2a-fp16-vector-intrinsics.ll @@ -1191,20 +1191,26 @@ entry: ret <8 x half> %shuffle } +define dso_local <4 x half> @test_vext_f16(<4 x half> %a, <4 x half> %b) { +; CHECK-LABEL: test_vext_f16: +; CHECK: vext.16 d0, d0, d1, #2 +; CHECK-NEXT: bx lr +entry: + %vext = shufflevector <4 x half> %a, <4 x half> %b, <4 x i32> <i32 2, i32 3, i32 4, i32 5> + ret <4 x half> %vext +} + +define dso_local <8 x half> @test_vextq_f16(<8 x half> %a, <8 x half> %b) { +; CHECK-LABEL: test_vextq_f16: +; CHECK: vext.16 q0, q0, q1, #5 +; CHECK-NEXT: bx lr +entry: + %vext = shufflevector <8 x half> %a, <8 x half> %b, <8 x i32> <i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12> + ret <8 x half> %vext +} + ; FIXME (PR38404) ; -;define dso_local <4 x half> @test_vext_f16(<4 x half> %a, <4 x half> %b) { -;entry: -; %vext = shufflevector <4 x half> %a, <4 x half> %b, <4 x i32> <i32 2, i32 3, i32 4, i32 5> -; ret <4 x half> %vext -;} -; -;define dso_local <8 x half> @test_vextq_f16(<8 x half> %a, <8 x half> %b) { -;entry: -; %vext = shufflevector <8 x half> %a, <8 x half> %b, <8 x i32> <i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12> -; ret <8 x half> %vext -;} -; ;define dso_local <4 x half> @test_vrev64_f16(<4 x half> %a) { ;entry: ; %shuffle.i = shufflevector <4 x half> %a, <4 x half> undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0> |

