Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 ; Show that we can move between float (S) and integer (GPR) registers. | |
| 2 | |
| 3 ; REQUIRES: allow_dump | |
| 4 | |
| 5 ; Compile using standalone assembler. | |
| 6 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --args -Om1 \ | |
| 7 ; RUN: --reg-use=s20,r5,r6 | FileCheck %s --check-prefix=ASM | |
| 8 | |
| 9 ; Show bytes in assembled standalone code. | |
| 10 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --assemble --disassemble \ | |
| 11 ; RUN: --args -Om1 --reg-use=s20,r5,r6 | FileCheck %s --check-prefix=DIS | |
| 12 | |
| 13 ; Compile using integrated assembler. | |
| 14 ; RUN: %p2i --filetype=iasm -i %s --target=arm32 --args -Om1 \ | |
| 15 ; RUN: --reg-use=s20,r5,r6 \ | |
| 16 ; RUN: | FileCheck %s --check-prefix=IASM | |
| 17 | |
| 18 ; Show bytes in assembled integrated code. | |
| 19 ; RUN: %p2i --filetype=iasm -i %s --target=arm32 --assemble --disassemble \ | |
| 20 ; RUN: --args -Om1 --reg-use=s20,r5,r6 | FileCheck %s --check-prefix=DIS | |
| 21 | |
| 22 define internal void @FloatToSignedI1() { | |
| 23 ; ASM-LABEL: FloatToSignedI1: | |
| 24 ; DIS-LABEL: {{.*}} <FloatToSignedI1>: | |
|
Jim Stichnoth
2016/01/27 22:59:22
Putting {{.*}} at the beginning or end of the matc
Karl
2016/01/27 23:36:42
Done.
| |
| 25 | |
| 26 %v = fptosi float 0.0 to i1 | |
| 27 | |
| 28 ; ASM: vmov r5, s20 | |
| 29 ; DIS: {{.*}}: ee1a5a10 | |
| 30 ; IASM-NOT: vmov | |
| 31 | |
| 32 ret void | |
| 33 } | |
| 34 | |
| 35 define internal void @FloatToSignedI8() { | |
| 36 ; ASM-LABEL: FloatToSignedI8: | |
| 37 ; DIS-LABEL: {{.*}} <FloatToSignedI8>: | |
| 38 | |
| 39 %v = fptosi float 0.0 to i8 | |
| 40 | |
| 41 ; ASM: vmov r5, s20 | |
| 42 ; DIS: {{.*}}: ee1a5a10 | |
| 43 ; IASM-NOT: vmov | |
| 44 | |
| 45 ret void | |
| 46 } | |
| 47 | |
|
Jim Stichnoth
2016/01/27 22:59:22
two newlines
Karl
2016/01/27 23:36:42
Done.
| |
| 48 | |
| 49 define internal void @FloatToSignedI16() { | |
| 50 ; ASM-LABEL: FloatToSignedI16: | |
| 51 ; DIS-LABEL: {{.*}} <FloatToSignedI16>: | |
| 52 | |
| 53 %v = fptosi float 0.0 to i16 | |
| 54 | |
| 55 ; ASM: vmov r5, s20 | |
| 56 ; DIS: {{.*}}: ee1a5a10 | |
| 57 ; IASM-NOT: vmov | |
| 58 | |
| 59 ret void | |
| 60 } | |
| 61 | |
| 62 define internal void @FloatToSignedI32() { | |
| 63 ; ASM-LABEL: FloatToSignedI32: | |
| 64 ; DIS-LABEL: {{.*}} <FloatToSignedI32>: | |
| 65 | |
| 66 %v = fptosi float 0.0 to i32 | |
| 67 | |
| 68 ; ASM: vmov r5, s20 | |
| 69 ; DIS: {{.*}}: ee1a5a10 | |
| 70 ; IASM-NOT: vmov | |
| 71 | |
| 72 ret void | |
| 73 } | |
| 74 | |
| 75 define internal float @SignedI1ToFloat() { | |
| 76 ; ASM-LABEL: SignedI1ToFloat: | |
| 77 ; DIS-LABEL: {{.*}} <SignedI1ToFloat>: | |
| 78 | |
| 79 %v = sitofp i1 1 to float | |
|
Jim Stichnoth
2016/01/27 22:59:22
I would use uitofp for these tests, particularly b
Karl
2016/01/27 23:36:42
Done.
| |
| 80 | |
| 81 ; ASM: vmov s20, r5 | |
| 82 ; DIS: {{.*}}: ee0a5a10 | |
| 83 ; IASM-NOT: vmov | |
| 84 | |
| 85 ret float %v | |
| 86 } | |
| 87 | |
| 88 define internal float @SignedI8ToFloat() { | |
| 89 ; ASM-LABEL: SignedI8ToFloat: | |
| 90 ; DIS-LABEL: {{.*}} <SignedI8ToFloat>: | |
| 91 | |
| 92 %v = sitofp i8 1 to float | |
| 93 | |
| 94 ; ASM: vmov s20, r5 | |
| 95 ; DIS: {{.*}}: ee0a5a10 | |
| 96 ; IASM-NOT: vmov | |
| 97 | |
| 98 ret float %v | |
| 99 } | |
| 100 | |
| 101 define internal float @SignedI16ToFloat() { | |
| 102 ; ASM-LABEL: SignedI16ToFloat: | |
| 103 ; DIS-LABEL: {{.*}} <SignedI16ToFloat>: | |
| 104 | |
| 105 %v = sitofp i16 1 to float | |
| 106 | |
| 107 ; ASM: vmov s20, r5 | |
| 108 ; DIS: {{.*}}: ee0a5a10 | |
| 109 ; IASM-NOT: vmov | |
| 110 | |
| 111 ret float %v | |
| 112 } | |
| 113 | |
| 114 define internal float @SignedI32ToFloat() { | |
| 115 ; ASM-LABEL: SignedI32ToFloat: | |
| 116 ; DIS-LABEL: {{.*}} <SignedI32ToFloat>: | |
| 117 | |
| 118 %v = sitofp i32 17 to float | |
| 119 | |
| 120 ; ASM: vmov s20, r5 | |
| 121 ; DIS: {{.*}}: ee0a5a10 | |
| 122 ; IASM-NOT: vmov | |
| 123 | |
| 124 ret float %v | |
| 125 } | |
| OLD | NEW |