Created
April 27, 2020 13:46
-
-
Save luismarques/d19f9fbeed5a35dde256633b41e7eb7c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[scenario] | |
filename = case-8cZhmPry.c | |
arch = rv32gc | |
abi = ilp32d | |
cost1 = 36 | |
cost2 = 49 | |
### Source: | |
short a; | |
double b; | |
int c() { | |
float d; | |
for (long e = 0; e < 4206; ++e) | |
for (long f = 0; f < 24; ++f) | |
a = a ? b : e; | |
return d; | |
} | |
### GCC: | |
.file "case-8cZhmPry.c" | |
.option nopic | |
.text | |
.align 1 | |
.globl c | |
.type c, @function | |
c: | |
lui a5,%hi(b) | |
fld fa5,%lo(b)(a5) | |
lui a6,%hi(a) | |
lh a4,%lo(a)(a6) | |
fcvt.w.d a2,fa5,rtz | |
li a0,4096 | |
li a1,0 | |
slli a2,a2,16 | |
srai a2,a2,16 | |
addi a0,a0,110 | |
.L2: | |
slli a3,a1,16 | |
li a5,24 | |
srai a3,a3,16 | |
.L4: | |
bne a4,zero,.L6 | |
mv a4,a3 | |
.L3: | |
addi a5,a5,-1 | |
bne a5,zero,.L4 | |
addi a1,a1,1 | |
bne a1,a0,.L2 | |
sh a4,%lo(a)(a6) | |
li a0,0 | |
ret | |
.L6: | |
mv a4,a2 | |
j .L3 | |
.size c, .-c | |
.globl b | |
.globl a | |
.section .sbss,"aw",@nobits | |
.align 3 | |
.type b, @object | |
.size b, 8 | |
b: | |
.zero 8 | |
.type a, @object | |
.size a, 2 | |
a: | |
.zero 2 | |
.ident "GCC: (crosstool-NG 1.24.0.37-3f461da) 10.0.0 20200108 (experimental)" | |
.section .note.GNU-stack,"",@progbits | |
### Clang: | |
.text | |
.attribute 4, 16 | |
.attribute 5, "rv32i2p0_m2p0_a2p0_f2p0_d2p0_c2p0" | |
.file "case-8cZhmPry.c" | |
.section .sdata,"aw",@progbits | |
.p2align 3 # -- Begin function c | |
.LCPI0_0: | |
.quad 0x3ff0000000000000 # double 1 | |
.text | |
.globl c | |
.p2align 1 | |
.type c,@function | |
c: # @c | |
.Lc$local: | |
# %bb.0: | |
lui a0, %hi(b) | |
fld ft0, %lo(b)(a0) | |
lui a0, %hi(a) | |
lhu a2, %lo(a)(a0) | |
fcvt.d.w ft1, zero | |
lui a0, 1 | |
lui a1, %hi(.LCPI0_0) | |
addi a1, a1, %lo(.LCPI0_0) | |
fld ft2, 0(a1) | |
addi a0, a0, 110 | |
lui a1, 16 | |
addi a1, a1, -1 | |
j .LBB0_2 | |
.LBB0_1: # in Loop: Header=BB0_2 Depth=1 | |
fcvt.w.d a2, ft3, rtz | |
addi a0, a0, -1 | |
fadd.d ft1, ft1, ft2 | |
beqz a0, .LBB0_50 | |
.LBB0_2: # =>This Inner Loop Header: Depth=1 | |
and a2, a2, a1 | |
seqz a2, a2 | |
fmv.d ft3, ft1 | |
bnez a2, .LBB0_4 | |
# %bb.3: # in Loop: Header=BB0_2 Depth=1 | |
fmv.d ft3, ft0 | |
.LBB0_4: # in Loop: Header=BB0_2 Depth=1 | |
fcvt.w.d a2, ft3, rtz | |
seqz a2, a2 | |
fmv.d ft3, ft1 | |
bnez a2, .LBB0_6 | |
# %bb.5: # in Loop: Header=BB0_2 Depth=1 | |
fmv.d ft3, ft0 | |
.LBB0_6: # in Loop: Header=BB0_2 Depth=1 | |
fcvt.w.d a2, ft3, rtz | |
seqz a2, a2 | |
fmv.d ft3, ft1 | |
bnez a2, .LBB0_8 | |
# %bb.7: # in Loop: Header=BB0_2 Depth=1 | |
fmv.d ft3, ft0 | |
.LBB0_8: # in Loop: Header=BB0_2 Depth=1 | |
fcvt.w.d a2, ft3, rtz | |
seqz a2, a2 | |
fmv.d ft3, ft1 | |
bnez a2, .LBB0_10 | |
# %bb.9: # in Loop: Header=BB0_2 Depth=1 | |
fmv.d ft3, ft0 | |
.LBB0_10: # in Loop: Header=BB0_2 Depth=1 | |
fcvt.w.d a2, ft3, rtz | |
seqz a2, a2 | |
fmv.d ft3, ft1 | |
bnez a2, .LBB0_12 | |
# %bb.11: # in Loop: Header=BB0_2 Depth=1 | |
fmv.d ft3, ft0 | |
.LBB0_12: # in Loop: Header=BB0_2 Depth=1 | |
fcvt.w.d a2, ft3, rtz | |
seqz a2, a2 | |
fmv.d ft3, ft1 | |
bnez a2, .LBB0_14 | |
# %bb.13: # in Loop: Header=BB0_2 Depth=1 | |
fmv.d ft3, ft0 | |
.LBB0_14: # in Loop: Header=BB0_2 Depth=1 | |
fcvt.w.d a2, ft3, rtz | |
seqz a2, a2 | |
fmv.d ft3, ft1 | |
bnez a2, .LBB0_16 | |
# %bb.15: # in Loop: Header=BB0_2 Depth=1 | |
fmv.d ft3, ft0 | |
.LBB0_16: # in Loop: Header=BB0_2 Depth=1 | |
fcvt.w.d a2, ft3, rtz | |
seqz a2, a2 | |
fmv.d ft3, ft1 | |
bnez a2, .LBB0_18 | |
# %bb.17: # in Loop: Header=BB0_2 Depth=1 | |
fmv.d ft3, ft0 | |
.LBB0_18: # in Loop: Header=BB0_2 Depth=1 | |
fcvt.w.d a2, ft3, rtz | |
seqz a2, a2 | |
fmv.d ft3, ft1 | |
bnez a2, .LBB0_20 | |
# %bb.19: # in Loop: Header=BB0_2 Depth=1 | |
fmv.d ft3, ft0 | |
.LBB0_20: # in Loop: Header=BB0_2 Depth=1 | |
fcvt.w.d a2, ft3, rtz | |
seqz a2, a2 | |
fmv.d ft3, ft1 | |
bnez a2, .LBB0_22 | |
# %bb.21: # in Loop: Header=BB0_2 Depth=1 | |
fmv.d ft3, ft0 | |
.LBB0_22: # in Loop: Header=BB0_2 Depth=1 | |
fcvt.w.d a2, ft3, rtz | |
seqz a2, a2 | |
fmv.d ft3, ft1 | |
bnez a2, .LBB0_24 | |
# %bb.23: # in Loop: Header=BB0_2 Depth=1 | |
fmv.d ft3, ft0 | |
.LBB0_24: # in Loop: Header=BB0_2 Depth=1 | |
fcvt.w.d a2, ft3, rtz | |
seqz a2, a2 | |
fmv.d ft3, ft1 | |
bnez a2, .LBB0_26 | |
# %bb.25: # in Loop: Header=BB0_2 Depth=1 | |
fmv.d ft3, ft0 | |
.LBB0_26: # in Loop: Header=BB0_2 Depth=1 | |
fcvt.w.d a2, ft3, rtz | |
seqz a2, a2 | |
fmv.d ft3, ft1 | |
bnez a2, .LBB0_28 | |
# %bb.27: # in Loop: Header=BB0_2 Depth=1 | |
fmv.d ft3, ft0 | |
.LBB0_28: # in Loop: Header=BB0_2 Depth=1 | |
fcvt.w.d a2, ft3, rtz | |
seqz a2, a2 | |
fmv.d ft3, ft1 | |
bnez a2, .LBB0_30 | |
# %bb.29: # in Loop: Header=BB0_2 Depth=1 | |
fmv.d ft3, ft0 | |
.LBB0_30: # in Loop: Header=BB0_2 Depth=1 | |
fcvt.w.d a2, ft3, rtz | |
seqz a2, a2 | |
fmv.d ft3, ft1 | |
bnez a2, .LBB0_32 | |
# %bb.31: # in Loop: Header=BB0_2 Depth=1 | |
fmv.d ft3, ft0 | |
.LBB0_32: # in Loop: Header=BB0_2 Depth=1 | |
fcvt.w.d a2, ft3, rtz | |
seqz a2, a2 | |
fmv.d ft3, ft1 | |
bnez a2, .LBB0_34 | |
# %bb.33: # in Loop: Header=BB0_2 Depth=1 | |
fmv.d ft3, ft0 | |
.LBB0_34: # in Loop: Header=BB0_2 Depth=1 | |
fcvt.w.d a2, ft3, rtz | |
seqz a2, a2 | |
fmv.d ft3, ft1 | |
bnez a2, .LBB0_36 | |
# %bb.35: # in Loop: Header=BB0_2 Depth=1 | |
fmv.d ft3, ft0 | |
.LBB0_36: # in Loop: Header=BB0_2 Depth=1 | |
fcvt.w.d a2, ft3, rtz | |
seqz a2, a2 | |
fmv.d ft3, ft1 | |
bnez a2, .LBB0_38 | |
# %bb.37: # in Loop: Header=BB0_2 Depth=1 | |
fmv.d ft3, ft0 | |
.LBB0_38: # in Loop: Header=BB0_2 Depth=1 | |
fcvt.w.d a2, ft3, rtz | |
seqz a2, a2 | |
fmv.d ft3, ft1 | |
bnez a2, .LBB0_40 | |
# %bb.39: # in Loop: Header=BB0_2 Depth=1 | |
fmv.d ft3, ft0 | |
.LBB0_40: # in Loop: Header=BB0_2 Depth=1 | |
fcvt.w.d a2, ft3, rtz | |
seqz a2, a2 | |
fmv.d ft3, ft1 | |
bnez a2, .LBB0_42 | |
# %bb.41: # in Loop: Header=BB0_2 Depth=1 | |
fmv.d ft3, ft0 | |
.LBB0_42: # in Loop: Header=BB0_2 Depth=1 | |
fcvt.w.d a2, ft3, rtz | |
seqz a2, a2 | |
fmv.d ft3, ft1 | |
bnez a2, .LBB0_44 | |
# %bb.43: # in Loop: Header=BB0_2 Depth=1 | |
fmv.d ft3, ft0 | |
.LBB0_44: # in Loop: Header=BB0_2 Depth=1 | |
fcvt.w.d a2, ft3, rtz | |
seqz a2, a2 | |
fmv.d ft3, ft1 | |
bnez a2, .LBB0_46 | |
# %bb.45: # in Loop: Header=BB0_2 Depth=1 | |
fmv.d ft3, ft0 | |
.LBB0_46: # in Loop: Header=BB0_2 Depth=1 | |
fcvt.w.d a2, ft3, rtz | |
seqz a2, a2 | |
fmv.d ft3, ft1 | |
bnez a2, .LBB0_48 | |
# %bb.47: # in Loop: Header=BB0_2 Depth=1 | |
fmv.d ft3, ft0 | |
.LBB0_48: # in Loop: Header=BB0_2 Depth=1 | |
fcvt.w.d a2, ft3, rtz | |
seqz a2, a2 | |
fmv.d ft3, ft1 | |
bnez a2, .LBB0_1 | |
# %bb.49: # in Loop: Header=BB0_2 Depth=1 | |
fmv.d ft3, ft0 | |
j .LBB0_1 | |
.LBB0_50: | |
lui a0, %hi(a) | |
sh a2, %lo(a)(a0) | |
ret | |
.Lfunc_end0: | |
.size c, .Lfunc_end0-c | |
# -- End function | |
.type a,@object # @a | |
.section .sbss,"aw",@nobits | |
.globl a | |
.p2align 1 | |
a: | |
.La$local: | |
.half 0 # 0x0 | |
.size a, 2 | |
.type b,@object # @b | |
.globl b | |
.p2align 3 | |
b: | |
.Lb$local: | |
.quad 0x0000000000000000 # double 0 | |
.size b, 8 | |
.ident "clang version 11.0.0 " | |
.section ".note.GNU-stack","",@progbits | |
.addrsig | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment