]> granicus.if.org Git - llvm/commit
AMDGPU: Return correct type during argument lowering
authorMatt Arsenault <Matthew.Arsenault@amd.com>
Sat, 15 Jul 2017 05:52:59 +0000 (05:52 +0000)
committerMatt Arsenault <Matthew.Arsenault@amd.com>
Sat, 15 Jul 2017 05:52:59 +0000 (05:52 +0000)
commit078c435803d0bc0af8e792efe77424ad1920b0c4
treedc29b35bb23828f77ba947cbd862105c3ff40da6
parent31b76d9b4ae960c9ddd784f990c34cf6127fb952
AMDGPU: Return correct type during argument lowering

The type needs to be casted back to the original argument type.
Fixes an assert that for some reason is only run when
using -debug.

Includes an additional combine to avoid test regressions
from having conversions mixed with multiple Assert[SZ]ext
nodes. On subtargets where i16 is legal, this was producing an i32
register with an i16 AssertZExt, truncated to i16 with another i8
AssertZExt.

t2: i32,ch = CopyFromReg t0, Register:i32 %vreg0
t3: i16 = truncate t2
t5: i16 = AssertZext t3, ValueType:ch:i8
t6: i8 = truncate t5
t7: i32 = zero_extend t6

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@308082 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/AMDGPU/AMDGPUISelLowering.cpp
lib/Target/AMDGPU/AMDGPUISelLowering.h
lib/Target/AMDGPU/SIISelLowering.cpp
test/CodeGen/AMDGPU/function-args.ll