body: |
bb.0.entry:
; CHECK-LABEL: name: test_scalar_saddo_32
- ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
- ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1
- ; CHECK: [[SADDO:%[0-9]+]]:_(s32), [[SADDO1:%[0-9]+]]:_(s1) = G_SADDO [[COPY]], [[COPY1]]
- ; CHECK: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[SADDO1]](s1)
- ; CHECK: $w0 = COPY [[SADDO]](s32)
- ; CHECK: $w1 = COPY [[ANYEXT]](s32)
- %0:_(s32) = COPY $w0
- %1:_(s32) = COPY $w1
- %2:_(s32), %3:_(s1) = G_SADDO %0, %1
- %4:_(s32) = G_ANYEXT %3
- $w0 = COPY %2(s32)
- $w1 = COPY %4(s32)
+ ; CHECK: %lhs:_(s32) = COPY $w0
+ ; CHECK: %rhs:_(s32) = COPY $w1
+ ; CHECK: %add:_(s32), %carry_out:_(s1) = G_SADDO %lhs, %rhs
+ ; CHECK: %carry_out_ext:_(s32) = G_ANYEXT %carry_out(s1)
+ ; CHECK: $w0 = COPY %add(s32)
+ ; CHECK: $w1 = COPY %carry_out_ext(s32)
+ %lhs:_(s32) = COPY $w0
+ %rhs:_(s32) = COPY $w1
+ %add:_(s32), %carry_out:_(s1) = G_SADDO %lhs, %rhs
+ %carry_out_ext:_(s32) = G_ANYEXT %carry_out
+ $w0 = COPY %add
+ $w1 = COPY %carry_out_ext
...
body: |
bb.0.entry:
; CHECK-LABEL: name: test_scalar_ssubo_32
- ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
- ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1
- ; CHECK: [[SSUBO:%[0-9]+]]:_(s32), [[SSUBO1:%[0-9]+]]:_(s1) = G_SSUBO [[COPY]], [[COPY1]]
- ; CHECK: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[SSUBO1]](s1)
- ; CHECK: $w0 = COPY [[SSUBO]](s32)
- ; CHECK: $w1 = COPY [[ANYEXT]](s32)
- %0:_(s32) = COPY $w0
- %1:_(s32) = COPY $w1
- %2:_(s32), %3:_(s1) = G_SSUBO %0, %1
- %4:_(s32) = G_ANYEXT %3
- $w0 = COPY %2(s32)
- $w1 = COPY %4(s32)
+ ; CHECK: %lhs:_(s32) = COPY $w0
+ ; CHECK: %rhs:_(s32) = COPY $w1
+ ; CHECK: %sub:_(s32), %carry_out:_(s1) = G_SSUBO %lhs, %rhs
+ ; CHECK: %carry_out_ext:_(s32) = G_ANYEXT %carry_out(s1)
+ ; CHECK: $w0 = COPY %sub(s32)
+ ; CHECK: $w1 = COPY %carry_out_ext(s32)
+ %lhs:_(s32) = COPY $w0
+ %rhs:_(s32) = COPY $w1
+ %sub:_(s32), %carry_out:_(s1) = G_SSUBO %lhs, %rhs
+ %carry_out_ext:_(s32) = G_ANYEXT %carry_out
+ $w0 = COPY %sub
+ $w1 = COPY %carry_out_ext
...
body: |
bb.0.entry:
; CHECK-LABEL: name: test_scalar_uadde_32
- ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
- ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1
- ; CHECK: [[COPY2:%[0-9]+]]:_(s32) = COPY $w2
- ; CHECK: [[TRUNC:%[0-9]+]]:_(s1) = G_TRUNC [[COPY2]](s32)
- ; CHECK: [[UADDE:%[0-9]+]]:_(s32), [[UADDE1:%[0-9]+]]:_(s1) = G_UADDE [[COPY]], [[COPY1]], [[TRUNC]]
- ; CHECK: [[COPY3:%[0-9]+]]:_(s32) = COPY [[COPY2]](s32)
- ; CHECK: $w0 = COPY [[UADDE]](s32)
- ; CHECK: $w1 = COPY [[COPY3]](s32)
- %0:_(s32) = COPY $w0
- %1:_(s32) = COPY $w1
+ ; CHECK: %lhs:_(s32) = COPY $w0
+ ; CHECK: %rhs:_(s32) = COPY $w1
+ ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w2
+ ; CHECK: %carry_in:_(s1) = G_TRUNC [[COPY]](s32)
+ ; CHECK: %add:_(s32), %carry_out:_(s1) = G_UADDE %lhs, %rhs, %carry_in
+ ; CHECK: %carry_out_ext:_(s32) = G_ANYEXT %carry_out(s1)
+ ; CHECK: $w0 = COPY %add(s32)
+ ; CHECK: $w1 = COPY %carry_out_ext(s32)
+ %lhs:_(s32) = COPY $w0
+ %rhs:_(s32) = COPY $w1
%2:_(s32) = COPY $w2
- %3:_(s1) = G_TRUNC %2
- %4:_(s32), %5:_(s1) = G_UADDE %0, %1, %3
- %6:_(s32) = G_ANYEXT %3
- $w0 = COPY %4(s32)
- $w1 = COPY %6(s32)
+ %carry_in:_(s1) = G_TRUNC %2
+ %add:_(s32), %carry_out:_(s1) = G_UADDE %lhs, %rhs, %carry_in
+ %carry_out_ext:_(s32) = G_ANYEXT %carry_out
+ $w0 = COPY %add
+ $w1 = COPY %carry_out_ext
...
body: |
bb.0.entry:
; CHECK-LABEL: name: test_scalar_uaddo_32
- ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
- ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1
- ; CHECK: [[UADDO:%[0-9]+]]:_(s32), [[UADDO1:%[0-9]+]]:_(s1) = G_UADDO [[COPY]], [[COPY1]]
- ; CHECK: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[UADDO1]](s1)
- ; CHECK: $w0 = COPY [[UADDO]](s32)
- ; CHECK: $w1 = COPY [[ANYEXT]](s32)
- %0:_(s32) = COPY $w0
- %1:_(s32) = COPY $w1
- %2:_(s32), %3:_(s1) = G_UADDO %0, %1
- %4:_(s32) = G_ANYEXT %3
- $w0 = COPY %2(s32)
- $w1 = COPY %4(s32)
+ ; CHECK: %lhs:_(s32) = COPY $w0
+ ; CHECK: %rhs:_(s32) = COPY $w1
+ ; CHECK: %add:_(s32), %carry_out:_(s1) = G_UADDO %lhs, %rhs
+ ; CHECK: %carry_out_ext:_(s32) = G_ANYEXT %carry_out(s1)
+ ; CHECK: $w0 = COPY %add(s32)
+ ; CHECK: $w1 = COPY %carry_out_ext(s32)
+ %lhs:_(s32) = COPY $w0
+ %rhs:_(s32) = COPY $w1
+ %add:_(s32), %carry_out:_(s1) = G_UADDO %lhs, %rhs
+ %carry_out_ext:_(s32) = G_ANYEXT %carry_out
+ $w0 = COPY %add
+ $w1 = COPY %carry_out_ext
...
body: |
bb.0.entry:
; CHECK-LABEL: name: test_scalar_usube_32
- ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
- ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1
- ; CHECK: [[COPY2:%[0-9]+]]:_(s32) = COPY $w2
- ; CHECK: [[TRUNC:%[0-9]+]]:_(s1) = G_TRUNC [[COPY2]](s32)
- ; CHECK: [[USUBE:%[0-9]+]]:_(s32), [[USUBE1:%[0-9]+]]:_(s1) = G_USUBE [[COPY]], [[COPY1]], [[TRUNC]]
- ; CHECK: [[COPY3:%[0-9]+]]:_(s32) = COPY [[COPY2]](s32)
- ; CHECK: $w0 = COPY [[USUBE]](s32)
- ; CHECK: $w1 = COPY [[COPY3]](s32)
- %0:_(s32) = COPY $w0
- %1:_(s32) = COPY $w1
+ ; CHECK: %lhs:_(s32) = COPY $w0
+ ; CHECK: %rhs:_(s32) = COPY $w1
+ ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w2
+ ; CHECK: %carry_in:_(s1) = G_TRUNC [[COPY]](s32)
+ ; CHECK: %sub:_(s32), %carry_out:_(s1) = G_USUBE %lhs, %rhs, %carry_in
+ ; CHECK: %carry_out_ext:_(s32) = G_ANYEXT %carry_out(s1)
+ ; CHECK: $w0 = COPY %sub(s32)
+ ; CHECK: $w1 = COPY %carry_out_ext(s32)
+ %lhs:_(s32) = COPY $w0
+ %rhs:_(s32) = COPY $w1
%2:_(s32) = COPY $w2
- %3:_(s1) = G_TRUNC %2
- %4:_(s32), %5:_(s1) = G_USUBE %0, %1, %3
- %6:_(s32) = G_ANYEXT %3
- $w0 = COPY %4(s32)
- $w1 = COPY %6(s32)
+ %carry_in:_(s1) = G_TRUNC %2
+ %sub:_(s32), %carry_out:_(s1) = G_USUBE %lhs, %rhs, %carry_in
+ %carry_out_ext:_(s32) = G_ANYEXT %carry_out
+ $w0 = COPY %sub
+ $w1 = COPY %carry_out_ext
...
body: |
bb.0.entry:
; CHECK-LABEL: name: test_scalar_usubo_32
- ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
- ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1
- ; CHECK: [[USUBO:%[0-9]+]]:_(s32), [[USUBO1:%[0-9]+]]:_(s1) = G_USUBO [[COPY]], [[COPY1]]
- ; CHECK: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[USUBO1]](s1)
- ; CHECK: $w0 = COPY [[USUBO]](s32)
- ; CHECK: $w1 = COPY [[ANYEXT]](s32)
- %0:_(s32) = COPY $w0
- %1:_(s32) = COPY $w1
- %2:_(s32), %3:_(s1) = G_USUBO %0, %1
- %4:_(s32) = G_ANYEXT %3
- $w0 = COPY %2(s32)
- $w1 = COPY %4(s32)
+ ; CHECK: %lhs:_(s32) = COPY $w0
+ ; CHECK: %rhs:_(s32) = COPY $w1
+ ; CHECK: %sub:_(s32), %carry_out:_(s1) = G_USUBO %lhs, %rhs
+ ; CHECK: %carry_out_ext:_(s32) = G_ANYEXT %carry_out(s1)
+ ; CHECK: $w0 = COPY %sub(s32)
+ ; CHECK: $w1 = COPY %carry_out_ext(s32)
+ %lhs:_(s32) = COPY $w0
+ %rhs:_(s32) = COPY $w1
+ %sub:_(s32), %carry_out:_(s1) = G_USUBO %lhs, %rhs
+ %carry_out_ext:_(s32) = G_ANYEXT %carry_out
+ $w0 = COPY %sub
+ $w1 = COPY %carry_out_ext
...