1e353cd81SMin-Yih Hsu# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 3 2*3bcb1f2bSCraig Topper# RUN: llc -mtriple=riscv64 -mattr='+d,+zfa,+v,+xtheadmempair' -verify-machineinstrs -run-pass=riscv-opt-w-instrs %s -o - | FileCheck %s 3e353cd81SMin-Yih Hsu 4e353cd81SMin-Yih Hsu--- 5e353cd81SMin-Yih Hsuname: fcvtmod_w_d 6e353cd81SMin-Yih HsutracksRegLiveness: true 7e353cd81SMin-Yih Hsubody: | 8e353cd81SMin-Yih Hsu bb.0.entry: 94c66180eSMin-Yih Hsu liveins: $x10 10e353cd81SMin-Yih Hsu 11478ec633SMin-Yih Hsu ; CHECK-LABEL: name: fcvtmod_w_d 12478ec633SMin-Yih Hsu ; CHECK: liveins: $x10 13478ec633SMin-Yih Hsu ; CHECK-NEXT: {{ $}} 14478ec633SMin-Yih Hsu ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $x10 15478ec633SMin-Yih Hsu ; CHECK-NEXT: [[FCVTMOD_W_D:%[0-9]+]]:gpr = nofpexcept FCVTMOD_W_D [[COPY]], 1 16478ec633SMin-Yih Hsu ; CHECK-NEXT: $x10 = COPY [[FCVTMOD_W_D]] 17478ec633SMin-Yih Hsu ; CHECK-NEXT: PseudoRET 18e353cd81SMin-Yih Hsu %0:fpr64 = COPY $x10 19e353cd81SMin-Yih Hsu 204c66180eSMin-Yih Hsu %1:gpr = nofpexcept FCVTMOD_W_D %0, 1 214c66180eSMin-Yih Hsu %2:gpr = ADDIW %1, 0 224c66180eSMin-Yih Hsu $x10 = COPY %2 23e353cd81SMin-Yih Hsu PseudoRET 24e353cd81SMin-Yih Hsu... 254dd5d967SCraig Topper 264dd5d967SCraig Topper--- 274dd5d967SCraig Toppername: physreg 284dd5d967SCraig ToppertracksRegLiveness: true 294dd5d967SCraig Topperbody: | 304dd5d967SCraig Topper bb.0.entry: 314dd5d967SCraig Topper liveins: $x10, $x11 324dd5d967SCraig Topper 33478ec633SMin-Yih Hsu ; CHECK-LABEL: name: physreg 34478ec633SMin-Yih Hsu ; CHECK: liveins: $x10, $x11 35478ec633SMin-Yih Hsu ; CHECK-NEXT: {{ $}} 36478ec633SMin-Yih Hsu ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10 37478ec633SMin-Yih Hsu ; CHECK-NEXT: [[ADDIW:%[0-9]+]]:gpr = ADDIW [[COPY]], 0 38478ec633SMin-Yih Hsu ; CHECK-NEXT: $x10 = COPY [[ADDIW]] 39478ec633SMin-Yih Hsu ; CHECK-NEXT: PseudoRET 404dd5d967SCraig Topper %0:gpr = COPY $x10 414dd5d967SCraig Topper %1:gpr = ADDIW %0, 0 424dd5d967SCraig Topper $x10 = COPY %1 434dd5d967SCraig Topper PseudoRET 444dd5d967SCraig Topper... 45478ec633SMin-Yih Hsu--- 46478ec633SMin-Yih Hsu name: vfirst 47478ec633SMin-Yih Hsu tracksRegLiveness: true 48478ec633SMin-Yih Hsu body: | 49478ec633SMin-Yih Hsu bb.0.entry: 50478ec633SMin-Yih Hsu liveins: $x10, $v8 51478ec633SMin-Yih Hsu 52478ec633SMin-Yih Hsu ; CHECK-LABEL: name: vfirst 53478ec633SMin-Yih Hsu ; CHECK: liveins: $x10, $v8 54478ec633SMin-Yih Hsu ; CHECK-NEXT: {{ $}} 55478ec633SMin-Yih Hsu ; CHECK-NEXT: [[COPY:%[0-9]+]]:vr = COPY $v8 56478ec633SMin-Yih Hsu ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gprnox0 = COPY $x10 57478ec633SMin-Yih Hsu ; CHECK-NEXT: [[PseudoVFIRST_M_B1_:%[0-9]+]]:gpr = PseudoVFIRST_M_B1 [[COPY]], [[COPY1]], 0 /* e8 */ 58478ec633SMin-Yih Hsu ; CHECK-NEXT: $x11 = COPY [[PseudoVFIRST_M_B1_]] 59478ec633SMin-Yih Hsu ; CHECK-NEXT: PseudoRET 60478ec633SMin-Yih Hsu %0:vr = COPY $v8 61478ec633SMin-Yih Hsu %1:gprnox0 = COPY $x10 62478ec633SMin-Yih Hsu 63478ec633SMin-Yih Hsu %2:gpr = PseudoVFIRST_M_B1 %0:vr, %1:gprnox0, 0 64478ec633SMin-Yih Hsu %3:gpr = ADDIW %2, 0 65478ec633SMin-Yih Hsu $x11 = COPY %3 66478ec633SMin-Yih Hsu PseudoRET 67478ec633SMin-Yih Hsu... 68478ec633SMin-Yih Hsu--- 69478ec633SMin-Yih Hsu name: vcpop 70478ec633SMin-Yih Hsu tracksRegLiveness: true 71478ec633SMin-Yih Hsu body: | 72478ec633SMin-Yih Hsu bb.0.entry: 73478ec633SMin-Yih Hsu liveins: $x10, $v8 74478ec633SMin-Yih Hsu 75478ec633SMin-Yih Hsu ; CHECK-LABEL: name: vcpop 76478ec633SMin-Yih Hsu ; CHECK: liveins: $x10, $v8 77478ec633SMin-Yih Hsu ; CHECK-NEXT: {{ $}} 78478ec633SMin-Yih Hsu ; CHECK-NEXT: [[COPY:%[0-9]+]]:vr = COPY $v8 79478ec633SMin-Yih Hsu ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gprnox0 = COPY $x10 80478ec633SMin-Yih Hsu ; CHECK-NEXT: [[PseudoVCPOP_M_B1_:%[0-9]+]]:gpr = PseudoVCPOP_M_B1 [[COPY]], [[COPY1]], 0 /* e8 */ 81478ec633SMin-Yih Hsu ; CHECK-NEXT: $x11 = COPY [[PseudoVCPOP_M_B1_]] 82478ec633SMin-Yih Hsu ; CHECK-NEXT: PseudoRET 83478ec633SMin-Yih Hsu %0:vr = COPY $v8 84478ec633SMin-Yih Hsu %1:gprnox0 = COPY $x10 85478ec633SMin-Yih Hsu 86478ec633SMin-Yih Hsu %2:gpr = PseudoVCPOP_M_B1 %0:vr, %1:gprnox0, 0 87478ec633SMin-Yih Hsu %3:gpr = ADDIW %2, 0 88478ec633SMin-Yih Hsu $x11 = COPY %3 89478ec633SMin-Yih Hsu PseudoRET 90478ec633SMin-Yih Hsu... 91*3bcb1f2bSCraig Topper--- 92*3bcb1f2bSCraig Topper name: th_lwd 93*3bcb1f2bSCraig Topper tracksRegLiveness: true 94*3bcb1f2bSCraig Topper body: | 95*3bcb1f2bSCraig Topper bb.0.entry: 96*3bcb1f2bSCraig Topper liveins: $x10 97*3bcb1f2bSCraig Topper ; CHECK-LABEL: name: th_lwd 98*3bcb1f2bSCraig Topper ; CHECK: liveins: $x10 99*3bcb1f2bSCraig Topper ; CHECK-NEXT: {{ $}} 100*3bcb1f2bSCraig Topper ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10 101*3bcb1f2bSCraig Topper ; CHECK-NEXT: early-clobber %1:gpr, early-clobber %2:gpr = TH_LWD [[COPY]], 2, 3 102*3bcb1f2bSCraig Topper ; CHECK-NEXT: $x10 = COPY %1 103*3bcb1f2bSCraig Topper ; CHECK-NEXT: $x11 = COPY %2 104*3bcb1f2bSCraig Topper ; CHECK-NEXT: PseudoRET 105*3bcb1f2bSCraig Topper %0:gpr = COPY $x10 106*3bcb1f2bSCraig Topper early-clobber %1:gpr, early-clobber %2:gpr = TH_LWD %0, 2, 3 107*3bcb1f2bSCraig Topper %3:gpr = ADDIW %1, 0 108*3bcb1f2bSCraig Topper %4:gpr = ADDIW %2, 0 109*3bcb1f2bSCraig Topper $x10 = COPY %3 110*3bcb1f2bSCraig Topper $x11 = COPY %4 111*3bcb1f2bSCraig Topper PseudoRET 112*3bcb1f2bSCraig Topper... 113*3bcb1f2bSCraig Topper 114