• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; Show that we know how to translate vmov for casts.
2
3; NOTE: Restricts S register to one that will better test S register encodings.
4
5; REQUIRES: allow_dump
6
7; Compile using standalone assembler.
8; RUN: %p2i --filetype=asm -i %s --target=arm32 --args -Om1 \
9; RUN:   -reg-use s20,s22,d20,d22 \
10; RUN:   | FileCheck %s --check-prefix=ASM
11
12; Show bytes in assembled standalone code.
13; RUN: %p2i --filetype=asm -i %s --target=arm32 --assemble --disassemble \
14; RUN:   --args -Om1 \
15; RUN:   -reg-use s20,s22,d20,d22 \
16; RUN:   | FileCheck %s --check-prefix=DIS
17
18; Compile using integrated assembler.
19; RUN: %p2i --filetype=iasm -i %s --target=arm32 --args -Om1 \
20; RUN:   -reg-use s20,s22,d20,d22 \
21; RUN:   | FileCheck %s --check-prefix=IASM
22
23; Show bytes in assembled integrated code.
24; RUN: %p2i --filetype=iasm -i %s --target=arm32 --assemble --disassemble \
25; RUN:   --args -Om1 \
26; RUN:   -reg-use s20,s22,d20,d22 \
27; RUN:   | FileCheck %s --check-prefix=DIS
28
29define internal float @castToFloat(i32 %a) {
30; ASM-LABEL: castToFloat:
31; DIS-LABEL: 00000000 <castToFloat>:
32; IASM-LABEL: castToFloat:
33
34entry:
35; ASM: .LcastToFloat$entry:
36; IASM: .LcastToFloat$entry:
37
38  %0 = bitcast i32 %a to float
39
40; ASM:          vmov    s20, r0
41; DIS:  10:     ee0a0a10
42; IASM-NOT:     vmov
43
44  ret float %0
45}
46