[LLVMdev] Possible bug with Bitcast instruction Expanding?
Stavropoulos Nikos
n.stavropoulos at think-silicon.com
Mon Feb 17 07:31:20 PST 2014
Hi all,
i am using llvm-3.4 with my backend
i have those 2 .ll files test.fp.ll
<http://llvm.1065342.n5.nabble.com/file/n66038/test.fp.ll> and
test.int.ll <http://llvm.1065342.n5.nabble.com/file/n66038/test.int.ll> .i
have v4f32 and v4i32 native types on my backend and BITCAST instruction
expanded for any type. i use llc with -O2
the code that the .ll with the v4i32 emmits is
================================================
# BB#0: # %entry
#APP
mov.v4 v2, v254
#NO_APP
st_qf v2, v7.y, 0
ld_qf v2, v7.y, 0
mov.v4 v8.x, v2.x
addiu v8.x, v8.x, 1
mov.v4 v2.x, v8.x
st_qf v2, v7.y, 16
ld_qf v1, v7.y, 16
#APP
pixout v1, v6.y, 6
#NO_APP
#APP
yield
#NO_APP
$BB0_1: # %while.body
# =>This Inner Loop Header: Depth=1
j $BB0_1
================================================
while the code that is emmited with the v4f32 version is
================================================
# BB#0: # %entry
#APP
mov.v4 v1, v254
#NO_APP
fset v3.x, 1065353216
load/store instructions
mov.v4 v8.x, v1.x
add.v4 v8.x, v8.x, v3.x
mov.v4 v1.x, v8.x
load/store instructions
#APP
pixout v1, v6.y, 6
#NO_APP
#APP
yield
#NO_APP
$BB0_1: # %while.body
# =>This Inner Loop Header: Depth=1
j $BB0_1
================================================
v4i32 and v4f32 are both in the same Registers
def QGR128 : RegisterClass<"NemaCore", [v4f32, v4i32 ], 128, (add
(sequence "L%u", 1, 6), (sequence "L%u", 8, 31))>;
the weird thing is that the higlight load-stores if the RegisterClass is
defined like this
def QGR128 : RegisterClass<"NemaCore",
[v4i32, v4f32 ],
128, (add (sequence "L%u", 1, 6), (sequence "L%u", 8, 31))>;
they disapear from the first piece of assembly and they appear on the second
where i have highlighted.
i found that the problem is a bitcast instruction . from the one vector type
to the other.
Is this normal?
why the way that registerclasses are defined should affect expanding ?
Thanks,
Nikos Stavropoulos
Compiler Engineer
Think Silicon Ltd.
--
View this message in context: http://llvm.1065342.n5.nabble.com/Possible-bug-with-Bitcast-instruction-Expanding-tp66038.html
Sent from the LLVM - Dev mailing list archive at Nabble.com.
More information about the llvm-dev
mailing list