|
62 | 62 | ret void |
63 | 63 | } |
64 | 64 |
|
| 65 | + define void @store_common_value_double_no_opt2(ptr %a, i32 %b, double %c, double %d, double %e) #0 { |
| 66 | + entry: |
| 67 | + store volatile double %e, ptr %a, align 8 |
| 68 | + store volatile double %e, ptr %a, align 8 |
| 69 | + ret void |
| 70 | + } |
| 71 | + |
65 | 72 | define void @store_common_ptr_double_no_opt(double %a, i32 %b, i32 %c, i32 %d, i32 %e, ptr %p) #0 { |
66 | 73 | entry: |
67 | 74 | store volatile double %a, ptr %p, align 8 |
@@ -216,6 +223,26 @@ body: | |
216 | 223 | SD_RV32 killed renamable $x16_x17, killed renamable $x10, 0 :: (store (s64) into %ir.a) |
217 | 224 | PseudoRET |
218 | 225 |
|
| 226 | +... |
| 227 | +--- |
| 228 | +name: store_common_value_double_no_opt2 |
| 229 | +tracksRegLiveness: true |
| 230 | +body: | |
| 231 | + bb.0.entry: |
| 232 | + liveins: $x10, $x16, $x17 |
| 233 | +
|
| 234 | + ; RV32-LABEL: name: store_common_value_double_no_opt2 |
| 235 | + ; RV32: liveins: $x10, $x16, $x17 |
| 236 | + ; RV32-NEXT: {{ $}} |
| 237 | + ; RV32-NEXT: $x12 = ADDI $x16, 0 |
| 238 | + ; RV32-NEXT: $x13 = ADDI $x17, 0 |
| 239 | + ; RV32-NEXT: SD_RV32 $x12_x13, renamable $x10, 0 :: (volatile store (s64) into %ir.a) |
| 240 | + ; RV32-NEXT: SD_RV32 killed $x12_x13, killed renamable $x10, 0 :: (volatile store (s64) into %ir.a) |
| 241 | + ; RV32-NEXT: PseudoRET |
| 242 | + SD_RV32 renamable $x16_x17, renamable $x10, 0 :: (volatile store (s64) into %ir.a) |
| 243 | + SD_RV32 killed renamable $x16_x17, killed renamable $x10, 0 :: (volatile store (s64) into %ir.a) |
| 244 | + PseudoRET |
| 245 | +
|
219 | 246 | ... |
220 | 247 | --- |
221 | 248 | name: store_common_ptr_double_no_opt |
|
0 commit comments