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 29 define internal float @castToFloat(i32 %a) { 30 ; ASM-LABEL: castToFloat: 31 ; DIS-LABEL: 00000000 <castToFloat>: 32 ; IASM-LABEL: castToFloat: 33 34 entry: 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