Mercurial > hg > CbC > CbC_llvm
comparison test/CodeGen/Thumb2/float-ops.ll @ 95:afa8332a0e37 LLVM3.8
LLVM 3.8
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 13 Oct 2015 17:48:58 +0900 |
parents | 60c9769439b8 |
children | 803732b1fca8 |
comparison
equal
deleted
inserted
replaced
84:f3e34b893a5f | 95:afa8332a0e37 |
---|---|
100 define float @load_f(float* %a) { | 100 define float @load_f(float* %a) { |
101 entry: | 101 entry: |
102 ; CHECK-LABEL: load_f: | 102 ; CHECK-LABEL: load_f: |
103 ; NONE: ldr r0, [r0] | 103 ; NONE: ldr r0, [r0] |
104 ; HARD: vldr s0, [r0] | 104 ; HARD: vldr s0, [r0] |
105 %0 = load float* %a, align 4 | 105 %0 = load float, float* %a, align 4 |
106 ret float %0 | 106 ret float %0 |
107 } | 107 } |
108 | 108 |
109 define double @load_d(double* %a) { | 109 define double @load_d(double* %a) { |
110 entry: | 110 entry: |
111 ; CHECK-LABEL: load_d: | 111 ; CHECK-LABEL: load_d: |
112 ; NONE: ldm.w r0, {r0, r1} | 112 ; NONE: ldm r0, {r0, r1} |
113 ; HARD: vldr d0, [r0] | 113 ; HARD: vldr d0, [r0] |
114 %0 = load double* %a, align 8 | 114 %0 = load double, double* %a, align 8 |
115 ret double %0 | 115 ret double %0 |
116 } | 116 } |
117 | 117 |
118 define void @store_f(float* %a, float %b) { | 118 define void @store_f(float* %a, float %b) { |
119 entry: | 119 entry: |
125 } | 125 } |
126 | 126 |
127 define void @store_d(double* %a, double %b) { | 127 define void @store_d(double* %a, double %b) { |
128 entry: | 128 entry: |
129 ; CHECK-LABEL: store_d: | 129 ; CHECK-LABEL: store_d: |
130 ; NONE: mov r1, r3 | 130 ; NONE: strd r2, r3, [r0] |
131 ; NONE: str r2, [r0] | |
132 ; NONE: str r1, [r0, #4] | |
133 ; HARD: vstr d0, [r0] | 131 ; HARD: vstr d0, [r0] |
134 store double %b, double* %a, align 8 | 132 store double %b, double* %a, align 8 |
135 ret void | 133 ret void |
136 } | 134 } |
137 | 135 |