Home | History | Annotate | Download | only in arm32
      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