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