InstCombine: Fix metadata arguments blocking freeze combining
authorMatt Arsenault <Matthew.Arsenault@amd.com>
Sun, 4 Dec 2022 16:36:11 +0000 (11:36 -0500)
committerMatt Arsenault <Matthew.Arsenault@amd.com>
Tue, 13 Dec 2022 03:57:49 +0000 (22:57 -0500)
commit1bf261c89b96df33ed14c6695f5f8590578e825d
treeca4b40c4d221c4468a539b78c562a2c5497e6734
parent28e3220a5cb4194399c25a17281cc18f19b3fd3c
InstCombine: Fix metadata arguments blocking freeze combining

These are used for special arguments to intrinsics and don't make any
sense to consider for poisonness. Fixes not pushing freeze through
llvm.fptrunc.round.

92106641ae297c24877085e0357e8095aa7b43c9 made
isGuaranteedNotToBeUndefOrPoison return false for metadata arguments,
which doesn't entirely make sense. An alternate patch could switch
that to true, and try to filter out adding some pointless noundefs on
metadata arguments (I tried that, attributor breaks one case with a
llvm.dbg.value in it).
llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
llvm/test/Transforms/InstCombine/freeze-fp-ops.ll