xref: /llvm-project/llvm/test/CodeGen/AArch64/vcvt-oversize.ll (revision 0b4688403672264ab451992a3461a0df113c3bd7)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc -mtriple=aarch64 < %s | FileCheck %s
3
4define <8 x i8> @float_to_i8(ptr %in) {
5; CHECK-LABEL: float_to_i8:
6; CHECK:       // %bb.0:
7; CHECK-NEXT:    ldp q1, q0, [x0]
8; CHECK-NEXT:    fadd v1.4s, v1.4s, v1.4s
9; CHECK-NEXT:    fadd v0.4s, v0.4s, v0.4s
10; CHECK-NEXT:    fcvtzs v0.4s, v0.4s
11; CHECK-NEXT:    fcvtzs v1.4s, v1.4s
12; CHECK-NEXT:    uzp1 v0.8h, v1.8h, v0.8h
13; CHECK-NEXT:    xtn v0.8b, v0.8h
14; CHECK-NEXT:    ret
15  %l = load <8 x float>, ptr %in
16  %scale = fmul <8 x float> %l, <float 2.0, float 2.0, float 2.0, float 2.0, float 2.0, float 2.0, float 2.0, float 2.0>
17  %conv = fptoui <8 x float> %scale to <8 x i8>
18  ret <8 x i8> %conv
19}
20