|
8 | 8 | ; RUN: llc -mtriple=riscv64 -frame-pointer=all -verify-machineinstrs < %s \
|
9 | 9 | ; RUN: | FileCheck -check-prefix=RV64-WITHFP %s
|
10 | 10 |
|
| 11 | +; RUN: llc -mtriple=riscv32 --enable-shrink-wrap=false < %s \ |
| 12 | +; RUN: | FileCheck -check-prefix=RV32-DISABLESW %s |
| 13 | +; RUN: llc -mtriple=riscv64 --enable-shrink-wrap=false < %s \ |
| 14 | +; RUN: | FileCheck -check-prefix=RV64-DISABLESW %s |
| 15 | +; RUN: llc -mtriple=riscv32 -frame-pointer=all --enable-shrink-wrap=false -verify-machineinstrs < %s \ |
| 16 | +; RUN: | FileCheck -check-prefix=RV32-WITHFP-DISABLESW %s |
| 17 | +; RUN: llc -mtriple=riscv64 -frame-pointer=all --enable-shrink-wrap=false -verify-machineinstrs < %s \ |
| 18 | +; RUN: | FileCheck -check-prefix=RV64-WITHFP-DISABLESW %s |
| 19 | + |
11 | 20 | define void @trivial() {
|
12 | 21 | ; RV32-LABEL: trivial:
|
13 | 22 | ; RV32: # %bb.0:
|
@@ -52,6 +61,50 @@ define void @trivial() {
|
52 | 61 | ; RV64-WITHFP-NEXT: addi sp, sp, 16
|
53 | 62 | ; RV64-WITHFP-NEXT: .cfi_def_cfa_offset 0
|
54 | 63 | ; RV64-WITHFP-NEXT: ret
|
| 64 | +; |
| 65 | +; RV32-DISABLESW-LABEL: trivial: |
| 66 | +; RV32-DISABLESW: # %bb.0: |
| 67 | +; RV32-DISABLESW-NEXT: ret |
| 68 | +; |
| 69 | +; RV64-DISABLESW-LABEL: trivial: |
| 70 | +; RV64-DISABLESW: # %bb.0: |
| 71 | +; RV64-DISABLESW-NEXT: ret |
| 72 | +; |
| 73 | +; RV32-WITHFP-DISABLESW-LABEL: trivial: |
| 74 | +; RV32-WITHFP-DISABLESW: # %bb.0: |
| 75 | +; RV32-WITHFP-DISABLESW-NEXT: addi sp, sp, -16 |
| 76 | +; RV32-WITHFP-DISABLESW-NEXT: .cfi_def_cfa_offset 16 |
| 77 | +; RV32-WITHFP-DISABLESW-NEXT: sw ra, 12(sp) # 4-byte Folded Spill |
| 78 | +; RV32-WITHFP-DISABLESW-NEXT: sw s0, 8(sp) # 4-byte Folded Spill |
| 79 | +; RV32-WITHFP-DISABLESW-NEXT: .cfi_offset ra, -4 |
| 80 | +; RV32-WITHFP-DISABLESW-NEXT: .cfi_offset s0, -8 |
| 81 | +; RV32-WITHFP-DISABLESW-NEXT: addi s0, sp, 16 |
| 82 | +; RV32-WITHFP-DISABLESW-NEXT: .cfi_def_cfa s0, 0 |
| 83 | +; RV32-WITHFP-DISABLESW-NEXT: lw ra, 12(sp) # 4-byte Folded Reload |
| 84 | +; RV32-WITHFP-DISABLESW-NEXT: lw s0, 8(sp) # 4-byte Folded Reload |
| 85 | +; RV32-WITHFP-DISABLESW-NEXT: .cfi_restore ra |
| 86 | +; RV32-WITHFP-DISABLESW-NEXT: .cfi_restore s0 |
| 87 | +; RV32-WITHFP-DISABLESW-NEXT: addi sp, sp, 16 |
| 88 | +; RV32-WITHFP-DISABLESW-NEXT: .cfi_def_cfa_offset 0 |
| 89 | +; RV32-WITHFP-DISABLESW-NEXT: ret |
| 90 | +; |
| 91 | +; RV64-WITHFP-DISABLESW-LABEL: trivial: |
| 92 | +; RV64-WITHFP-DISABLESW: # %bb.0: |
| 93 | +; RV64-WITHFP-DISABLESW-NEXT: addi sp, sp, -16 |
| 94 | +; RV64-WITHFP-DISABLESW-NEXT: .cfi_def_cfa_offset 16 |
| 95 | +; RV64-WITHFP-DISABLESW-NEXT: sd ra, 8(sp) # 8-byte Folded Spill |
| 96 | +; RV64-WITHFP-DISABLESW-NEXT: sd s0, 0(sp) # 8-byte Folded Spill |
| 97 | +; RV64-WITHFP-DISABLESW-NEXT: .cfi_offset ra, -8 |
| 98 | +; RV64-WITHFP-DISABLESW-NEXT: .cfi_offset s0, -16 |
| 99 | +; RV64-WITHFP-DISABLESW-NEXT: addi s0, sp, 16 |
| 100 | +; RV64-WITHFP-DISABLESW-NEXT: .cfi_def_cfa s0, 0 |
| 101 | +; RV64-WITHFP-DISABLESW-NEXT: ld ra, 8(sp) # 8-byte Folded Reload |
| 102 | +; RV64-WITHFP-DISABLESW-NEXT: ld s0, 0(sp) # 8-byte Folded Reload |
| 103 | +; RV64-WITHFP-DISABLESW-NEXT: .cfi_restore ra |
| 104 | +; RV64-WITHFP-DISABLESW-NEXT: .cfi_restore s0 |
| 105 | +; RV64-WITHFP-DISABLESW-NEXT: addi sp, sp, 16 |
| 106 | +; RV64-WITHFP-DISABLESW-NEXT: .cfi_def_cfa_offset 0 |
| 107 | +; RV64-WITHFP-DISABLESW-NEXT: ret |
55 | 108 | ret void
|
56 | 109 | }
|
57 | 110 |
|
@@ -159,6 +212,110 @@ define void @stack_alloc(i32 signext %size) {
|
159 | 212 | ; RV64-WITHFP-NEXT: addi sp, sp, 16
|
160 | 213 | ; RV64-WITHFP-NEXT: .cfi_def_cfa_offset 0
|
161 | 214 | ; RV64-WITHFP-NEXT: ret
|
| 215 | +; |
| 216 | +; RV32-DISABLESW-LABEL: stack_alloc: |
| 217 | +; RV32-DISABLESW: # %bb.0: # %entry |
| 218 | +; RV32-DISABLESW-NEXT: addi sp, sp, -16 |
| 219 | +; RV32-DISABLESW-NEXT: .cfi_def_cfa_offset 16 |
| 220 | +; RV32-DISABLESW-NEXT: sw ra, 12(sp) # 4-byte Folded Spill |
| 221 | +; RV32-DISABLESW-NEXT: sw s0, 8(sp) # 4-byte Folded Spill |
| 222 | +; RV32-DISABLESW-NEXT: .cfi_offset ra, -4 |
| 223 | +; RV32-DISABLESW-NEXT: .cfi_offset s0, -8 |
| 224 | +; RV32-DISABLESW-NEXT: addi s0, sp, 16 |
| 225 | +; RV32-DISABLESW-NEXT: .cfi_def_cfa s0, 0 |
| 226 | +; RV32-DISABLESW-NEXT: addi a0, a0, 15 |
| 227 | +; RV32-DISABLESW-NEXT: andi a0, a0, -16 |
| 228 | +; RV32-DISABLESW-NEXT: sub a0, sp, a0 |
| 229 | +; RV32-DISABLESW-NEXT: mv sp, a0 |
| 230 | +; RV32-DISABLESW-NEXT: call callee_with_args |
| 231 | +; RV32-DISABLESW-NEXT: addi sp, s0, -16 |
| 232 | +; RV32-DISABLESW-NEXT: .cfi_def_cfa sp, 16 |
| 233 | +; RV32-DISABLESW-NEXT: lw ra, 12(sp) # 4-byte Folded Reload |
| 234 | +; RV32-DISABLESW-NEXT: lw s0, 8(sp) # 4-byte Folded Reload |
| 235 | +; RV32-DISABLESW-NEXT: .cfi_restore ra |
| 236 | +; RV32-DISABLESW-NEXT: .cfi_restore s0 |
| 237 | +; RV32-DISABLESW-NEXT: addi sp, sp, 16 |
| 238 | +; RV32-DISABLESW-NEXT: .cfi_def_cfa_offset 0 |
| 239 | +; RV32-DISABLESW-NEXT: ret |
| 240 | +; |
| 241 | +; RV64-DISABLESW-LABEL: stack_alloc: |
| 242 | +; RV64-DISABLESW: # %bb.0: # %entry |
| 243 | +; RV64-DISABLESW-NEXT: addi sp, sp, -16 |
| 244 | +; RV64-DISABLESW-NEXT: .cfi_def_cfa_offset 16 |
| 245 | +; RV64-DISABLESW-NEXT: sd ra, 8(sp) # 8-byte Folded Spill |
| 246 | +; RV64-DISABLESW-NEXT: sd s0, 0(sp) # 8-byte Folded Spill |
| 247 | +; RV64-DISABLESW-NEXT: .cfi_offset ra, -8 |
| 248 | +; RV64-DISABLESW-NEXT: .cfi_offset s0, -16 |
| 249 | +; RV64-DISABLESW-NEXT: addi s0, sp, 16 |
| 250 | +; RV64-DISABLESW-NEXT: .cfi_def_cfa s0, 0 |
| 251 | +; RV64-DISABLESW-NEXT: slli a0, a0, 32 |
| 252 | +; RV64-DISABLESW-NEXT: srli a0, a0, 32 |
| 253 | +; RV64-DISABLESW-NEXT: addi a0, a0, 15 |
| 254 | +; RV64-DISABLESW-NEXT: andi a0, a0, -16 |
| 255 | +; RV64-DISABLESW-NEXT: sub a0, sp, a0 |
| 256 | +; RV64-DISABLESW-NEXT: mv sp, a0 |
| 257 | +; RV64-DISABLESW-NEXT: call callee_with_args |
| 258 | +; RV64-DISABLESW-NEXT: addi sp, s0, -16 |
| 259 | +; RV64-DISABLESW-NEXT: .cfi_def_cfa sp, 16 |
| 260 | +; RV64-DISABLESW-NEXT: ld ra, 8(sp) # 8-byte Folded Reload |
| 261 | +; RV64-DISABLESW-NEXT: ld s0, 0(sp) # 8-byte Folded Reload |
| 262 | +; RV64-DISABLESW-NEXT: .cfi_restore ra |
| 263 | +; RV64-DISABLESW-NEXT: .cfi_restore s0 |
| 264 | +; RV64-DISABLESW-NEXT: addi sp, sp, 16 |
| 265 | +; RV64-DISABLESW-NEXT: .cfi_def_cfa_offset 0 |
| 266 | +; RV64-DISABLESW-NEXT: ret |
| 267 | +; |
| 268 | +; RV32-WITHFP-DISABLESW-LABEL: stack_alloc: |
| 269 | +; RV32-WITHFP-DISABLESW: # %bb.0: # %entry |
| 270 | +; RV32-WITHFP-DISABLESW-NEXT: addi sp, sp, -16 |
| 271 | +; RV32-WITHFP-DISABLESW-NEXT: .cfi_def_cfa_offset 16 |
| 272 | +; RV32-WITHFP-DISABLESW-NEXT: sw ra, 12(sp) # 4-byte Folded Spill |
| 273 | +; RV32-WITHFP-DISABLESW-NEXT: sw s0, 8(sp) # 4-byte Folded Spill |
| 274 | +; RV32-WITHFP-DISABLESW-NEXT: .cfi_offset ra, -4 |
| 275 | +; RV32-WITHFP-DISABLESW-NEXT: .cfi_offset s0, -8 |
| 276 | +; RV32-WITHFP-DISABLESW-NEXT: addi s0, sp, 16 |
| 277 | +; RV32-WITHFP-DISABLESW-NEXT: .cfi_def_cfa s0, 0 |
| 278 | +; RV32-WITHFP-DISABLESW-NEXT: addi a0, a0, 15 |
| 279 | +; RV32-WITHFP-DISABLESW-NEXT: andi a0, a0, -16 |
| 280 | +; RV32-WITHFP-DISABLESW-NEXT: sub a0, sp, a0 |
| 281 | +; RV32-WITHFP-DISABLESW-NEXT: mv sp, a0 |
| 282 | +; RV32-WITHFP-DISABLESW-NEXT: call callee_with_args |
| 283 | +; RV32-WITHFP-DISABLESW-NEXT: addi sp, s0, -16 |
| 284 | +; RV32-WITHFP-DISABLESW-NEXT: .cfi_def_cfa sp, 16 |
| 285 | +; RV32-WITHFP-DISABLESW-NEXT: lw ra, 12(sp) # 4-byte Folded Reload |
| 286 | +; RV32-WITHFP-DISABLESW-NEXT: lw s0, 8(sp) # 4-byte Folded Reload |
| 287 | +; RV32-WITHFP-DISABLESW-NEXT: .cfi_restore ra |
| 288 | +; RV32-WITHFP-DISABLESW-NEXT: .cfi_restore s0 |
| 289 | +; RV32-WITHFP-DISABLESW-NEXT: addi sp, sp, 16 |
| 290 | +; RV32-WITHFP-DISABLESW-NEXT: .cfi_def_cfa_offset 0 |
| 291 | +; RV32-WITHFP-DISABLESW-NEXT: ret |
| 292 | +; |
| 293 | +; RV64-WITHFP-DISABLESW-LABEL: stack_alloc: |
| 294 | +; RV64-WITHFP-DISABLESW: # %bb.0: # %entry |
| 295 | +; RV64-WITHFP-DISABLESW-NEXT: addi sp, sp, -16 |
| 296 | +; RV64-WITHFP-DISABLESW-NEXT: .cfi_def_cfa_offset 16 |
| 297 | +; RV64-WITHFP-DISABLESW-NEXT: sd ra, 8(sp) # 8-byte Folded Spill |
| 298 | +; RV64-WITHFP-DISABLESW-NEXT: sd s0, 0(sp) # 8-byte Folded Spill |
| 299 | +; RV64-WITHFP-DISABLESW-NEXT: .cfi_offset ra, -8 |
| 300 | +; RV64-WITHFP-DISABLESW-NEXT: .cfi_offset s0, -16 |
| 301 | +; RV64-WITHFP-DISABLESW-NEXT: addi s0, sp, 16 |
| 302 | +; RV64-WITHFP-DISABLESW-NEXT: .cfi_def_cfa s0, 0 |
| 303 | +; RV64-WITHFP-DISABLESW-NEXT: slli a0, a0, 32 |
| 304 | +; RV64-WITHFP-DISABLESW-NEXT: srli a0, a0, 32 |
| 305 | +; RV64-WITHFP-DISABLESW-NEXT: addi a0, a0, 15 |
| 306 | +; RV64-WITHFP-DISABLESW-NEXT: andi a0, a0, -16 |
| 307 | +; RV64-WITHFP-DISABLESW-NEXT: sub a0, sp, a0 |
| 308 | +; RV64-WITHFP-DISABLESW-NEXT: mv sp, a0 |
| 309 | +; RV64-WITHFP-DISABLESW-NEXT: call callee_with_args |
| 310 | +; RV64-WITHFP-DISABLESW-NEXT: addi sp, s0, -16 |
| 311 | +; RV64-WITHFP-DISABLESW-NEXT: .cfi_def_cfa sp, 16 |
| 312 | +; RV64-WITHFP-DISABLESW-NEXT: ld ra, 8(sp) # 8-byte Folded Reload |
| 313 | +; RV64-WITHFP-DISABLESW-NEXT: ld s0, 0(sp) # 8-byte Folded Reload |
| 314 | +; RV64-WITHFP-DISABLESW-NEXT: .cfi_restore ra |
| 315 | +; RV64-WITHFP-DISABLESW-NEXT: .cfi_restore s0 |
| 316 | +; RV64-WITHFP-DISABLESW-NEXT: addi sp, sp, 16 |
| 317 | +; RV64-WITHFP-DISABLESW-NEXT: .cfi_def_cfa_offset 0 |
| 318 | +; RV64-WITHFP-DISABLESW-NEXT: ret |
162 | 319 | entry:
|
163 | 320 | %0 = alloca i8, i32 %size, align 16
|
164 | 321 | call void @callee_with_args(ptr nonnull %0)
|
@@ -249,6 +406,118 @@ define void @branch_and_tail_call(i1 %a) {
|
249 | 406 | ; RV64-WITHFP-NEXT: addi sp, sp, 16
|
250 | 407 | ; RV64-WITHFP-NEXT: .cfi_def_cfa_offset 0
|
251 | 408 | ; RV64-WITHFP-NEXT: ret
|
| 409 | +; |
| 410 | +; RV32-DISABLESW-LABEL: branch_and_tail_call: |
| 411 | +; RV32-DISABLESW: # %bb.0: |
| 412 | +; RV32-DISABLESW-NEXT: addi sp, sp, -16 |
| 413 | +; RV32-DISABLESW-NEXT: .cfi_def_cfa_offset 16 |
| 414 | +; RV32-DISABLESW-NEXT: sw ra, 12(sp) # 4-byte Folded Spill |
| 415 | +; RV32-DISABLESW-NEXT: .cfi_offset ra, -4 |
| 416 | +; RV32-DISABLESW-NEXT: .cfi_remember_state |
| 417 | +; RV32-DISABLESW-NEXT: andi a0, a0, 1 |
| 418 | +; RV32-DISABLESW-NEXT: beqz a0, .LBB2_2 |
| 419 | +; RV32-DISABLESW-NEXT: # %bb.1: # %blue_pill |
| 420 | +; RV32-DISABLESW-NEXT: lw ra, 12(sp) # 4-byte Folded Reload |
| 421 | +; RV32-DISABLESW-NEXT: .cfi_restore ra |
| 422 | +; RV32-DISABLESW-NEXT: addi sp, sp, 16 |
| 423 | +; RV32-DISABLESW-NEXT: .cfi_def_cfa_offset 0 |
| 424 | +; RV32-DISABLESW-NEXT: tail callee1 |
| 425 | +; RV32-DISABLESW-NEXT: .LBB2_2: # %red_pill |
| 426 | +; RV32-DISABLESW-NEXT: .cfi_restore_state |
| 427 | +; RV32-DISABLESW-NEXT: call callee2 |
| 428 | +; RV32-DISABLESW-NEXT: lw ra, 12(sp) # 4-byte Folded Reload |
| 429 | +; RV32-DISABLESW-NEXT: .cfi_restore ra |
| 430 | +; RV32-DISABLESW-NEXT: addi sp, sp, 16 |
| 431 | +; RV32-DISABLESW-NEXT: .cfi_def_cfa_offset 0 |
| 432 | +; RV32-DISABLESW-NEXT: ret |
| 433 | +; |
| 434 | +; RV64-DISABLESW-LABEL: branch_and_tail_call: |
| 435 | +; RV64-DISABLESW: # %bb.0: |
| 436 | +; RV64-DISABLESW-NEXT: addi sp, sp, -16 |
| 437 | +; RV64-DISABLESW-NEXT: .cfi_def_cfa_offset 16 |
| 438 | +; RV64-DISABLESW-NEXT: sd ra, 8(sp) # 8-byte Folded Spill |
| 439 | +; RV64-DISABLESW-NEXT: .cfi_offset ra, -8 |
| 440 | +; RV64-DISABLESW-NEXT: .cfi_remember_state |
| 441 | +; RV64-DISABLESW-NEXT: andi a0, a0, 1 |
| 442 | +; RV64-DISABLESW-NEXT: beqz a0, .LBB2_2 |
| 443 | +; RV64-DISABLESW-NEXT: # %bb.1: # %blue_pill |
| 444 | +; RV64-DISABLESW-NEXT: ld ra, 8(sp) # 8-byte Folded Reload |
| 445 | +; RV64-DISABLESW-NEXT: .cfi_restore ra |
| 446 | +; RV64-DISABLESW-NEXT: addi sp, sp, 16 |
| 447 | +; RV64-DISABLESW-NEXT: .cfi_def_cfa_offset 0 |
| 448 | +; RV64-DISABLESW-NEXT: tail callee1 |
| 449 | +; RV64-DISABLESW-NEXT: .LBB2_2: # %red_pill |
| 450 | +; RV64-DISABLESW-NEXT: .cfi_restore_state |
| 451 | +; RV64-DISABLESW-NEXT: call callee2 |
| 452 | +; RV64-DISABLESW-NEXT: ld ra, 8(sp) # 8-byte Folded Reload |
| 453 | +; RV64-DISABLESW-NEXT: .cfi_restore ra |
| 454 | +; RV64-DISABLESW-NEXT: addi sp, sp, 16 |
| 455 | +; RV64-DISABLESW-NEXT: .cfi_def_cfa_offset 0 |
| 456 | +; RV64-DISABLESW-NEXT: ret |
| 457 | +; |
| 458 | +; RV32-WITHFP-DISABLESW-LABEL: branch_and_tail_call: |
| 459 | +; RV32-WITHFP-DISABLESW: # %bb.0: |
| 460 | +; RV32-WITHFP-DISABLESW-NEXT: addi sp, sp, -16 |
| 461 | +; RV32-WITHFP-DISABLESW-NEXT: .cfi_def_cfa_offset 16 |
| 462 | +; RV32-WITHFP-DISABLESW-NEXT: sw ra, 12(sp) # 4-byte Folded Spill |
| 463 | +; RV32-WITHFP-DISABLESW-NEXT: sw s0, 8(sp) # 4-byte Folded Spill |
| 464 | +; RV32-WITHFP-DISABLESW-NEXT: .cfi_offset ra, -4 |
| 465 | +; RV32-WITHFP-DISABLESW-NEXT: .cfi_offset s0, -8 |
| 466 | +; RV32-WITHFP-DISABLESW-NEXT: addi s0, sp, 16 |
| 467 | +; RV32-WITHFP-DISABLESW-NEXT: .cfi_def_cfa s0, 0 |
| 468 | +; RV32-WITHFP-DISABLESW-NEXT: .cfi_remember_state |
| 469 | +; RV32-WITHFP-DISABLESW-NEXT: andi a0, a0, 1 |
| 470 | +; RV32-WITHFP-DISABLESW-NEXT: beqz a0, .LBB2_2 |
| 471 | +; RV32-WITHFP-DISABLESW-NEXT: # %bb.1: # %blue_pill |
| 472 | +; RV32-WITHFP-DISABLESW-NEXT: lw ra, 12(sp) # 4-byte Folded Reload |
| 473 | +; RV32-WITHFP-DISABLESW-NEXT: lw s0, 8(sp) # 4-byte Folded Reload |
| 474 | +; RV32-WITHFP-DISABLESW-NEXT: .cfi_restore ra |
| 475 | +; RV32-WITHFP-DISABLESW-NEXT: .cfi_restore s0 |
| 476 | +; RV32-WITHFP-DISABLESW-NEXT: addi sp, sp, 16 |
| 477 | +; RV32-WITHFP-DISABLESW-NEXT: .cfi_def_cfa_offset 0 |
| 478 | +; RV32-WITHFP-DISABLESW-NEXT: tail callee1 |
| 479 | +; RV32-WITHFP-DISABLESW-NEXT: .LBB2_2: # %red_pill |
| 480 | +; RV32-WITHFP-DISABLESW-NEXT: .cfi_restore_state |
| 481 | +; RV32-WITHFP-DISABLESW-NEXT: call callee2 |
| 482 | +; RV32-WITHFP-DISABLESW-NEXT: lw ra, 12(sp) # 4-byte Folded Reload |
| 483 | +; RV32-WITHFP-DISABLESW-NEXT: lw s0, 8(sp) # 4-byte Folded Reload |
| 484 | +; RV32-WITHFP-DISABLESW-NEXT: .cfi_restore ra |
| 485 | +; RV32-WITHFP-DISABLESW-NEXT: .cfi_restore s0 |
| 486 | +; RV32-WITHFP-DISABLESW-NEXT: addi sp, sp, 16 |
| 487 | +; RV32-WITHFP-DISABLESW-NEXT: .cfi_def_cfa_offset 0 |
| 488 | +; RV32-WITHFP-DISABLESW-NEXT: ret |
| 489 | +; |
| 490 | +; RV64-WITHFP-DISABLESW-LABEL: branch_and_tail_call: |
| 491 | +; RV64-WITHFP-DISABLESW: # %bb.0: |
| 492 | +; RV64-WITHFP-DISABLESW-NEXT: addi sp, sp, -16 |
| 493 | +; RV64-WITHFP-DISABLESW-NEXT: .cfi_def_cfa_offset 16 |
| 494 | +; RV64-WITHFP-DISABLESW-NEXT: sd ra, 8(sp) # 8-byte Folded Spill |
| 495 | +; RV64-WITHFP-DISABLESW-NEXT: sd s0, 0(sp) # 8-byte Folded Spill |
| 496 | +; RV64-WITHFP-DISABLESW-NEXT: .cfi_offset ra, -8 |
| 497 | +; RV64-WITHFP-DISABLESW-NEXT: .cfi_offset s0, -16 |
| 498 | +; RV64-WITHFP-DISABLESW-NEXT: addi s0, sp, 16 |
| 499 | +; RV64-WITHFP-DISABLESW-NEXT: .cfi_def_cfa s0, 0 |
| 500 | +; RV64-WITHFP-DISABLESW-NEXT: .cfi_remember_state |
| 501 | +; RV64-WITHFP-DISABLESW-NEXT: andi a0, a0, 1 |
| 502 | +; RV64-WITHFP-DISABLESW-NEXT: beqz a0, .LBB2_2 |
| 503 | +; RV64-WITHFP-DISABLESW-NEXT: # %bb.1: # %blue_pill |
| 504 | +; RV64-WITHFP-DISABLESW-NEXT: ld ra, 8(sp) # 8-byte Folded Reload |
| 505 | +; RV64-WITHFP-DISABLESW-NEXT: ld s0, 0(sp) # 8-byte Folded Reload |
| 506 | +; RV64-WITHFP-DISABLESW-NEXT: .cfi_restore ra |
| 507 | +; RV64-WITHFP-DISABLESW-NEXT: .cfi_restore s0 |
| 508 | +; RV64-WITHFP-DISABLESW-NEXT: addi sp, sp, 16 |
| 509 | +; RV64-WITHFP-DISABLESW-NEXT: .cfi_def_cfa_offset 0 |
| 510 | +; RV64-WITHFP-DISABLESW-NEXT: tail callee1 |
| 511 | +; RV64-WITHFP-DISABLESW-NEXT: .LBB2_2: # %red_pill |
| 512 | +; RV64-WITHFP-DISABLESW-NEXT: .cfi_restore_state |
| 513 | +; RV64-WITHFP-DISABLESW-NEXT: call callee2 |
| 514 | +; RV64-WITHFP-DISABLESW-NEXT: ld ra, 8(sp) # 8-byte Folded Reload |
| 515 | +; RV64-WITHFP-DISABLESW-NEXT: ld s0, 0(sp) # 8-byte Folded Reload |
| 516 | +; RV64-WITHFP-DISABLESW-NEXT: .cfi_restore ra |
| 517 | +; RV64-WITHFP-DISABLESW-NEXT: .cfi_restore s0 |
| 518 | +; RV64-WITHFP-DISABLESW-NEXT: addi sp, sp, 16 |
| 519 | +; RV64-WITHFP-DISABLESW-NEXT: .cfi_def_cfa_offset 0 |
| 520 | +; RV64-WITHFP-DISABLESW-NEXT: ret |
252 | 521 | br i1 %a, label %blue_pill, label %red_pill
|
253 | 522 | blue_pill:
|
254 | 523 | tail call void @callee1()
|
|
0 commit comments