xref: /aosp_15_r20/external/llvm/test/CodeGen/AArch64/arm64-extend-int-to-fp.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -march=arm64 -aarch64-neon-syntax=apple | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @foo(<4 x i16> %a) nounwind {
4*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: foo:
5*9880d681SAndroid Build Coastguard Worker; CHECK: ushll.4s	v0, v0, #0
6*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ucvtf.4s	v0, v0
7*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret
8*9880d681SAndroid Build Coastguard Worker  %vcvt.i = uitofp <4 x i16> %a to <4 x float>
9*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vcvt.i
10*9880d681SAndroid Build Coastguard Worker}
11*9880d681SAndroid Build Coastguard Worker
12*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @bar(<4 x i16> %a) nounwind {
13*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: bar:
14*9880d681SAndroid Build Coastguard Worker; CHECK: sshll.4s	v0, v0, #0
15*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: scvtf.4s	v0, v0
16*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: ret
17*9880d681SAndroid Build Coastguard Worker  %vcvt.i = sitofp <4 x i16> %a to <4 x float>
18*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %vcvt.i
19*9880d681SAndroid Build Coastguard Worker}
20