[llvm] [WIP][AMDGPU] Split `isInlinableLiteral16` into three and call the specific version if possible (PR #81345)
Stanislav Mekhanoshin via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 22 01:35:53 PST 2024
================
@@ -99,39 +99,39 @@ define i32 @inline_A_constraint_H1() {
; VI-LABEL: {{^}}inline_A_constraint_H2:
; VI: v_mov_b32 {{v[0-9]+}}, 0x3c00
define i32 @inline_A_constraint_H2() {
- %v0 = tail call i32 asm "v_mov_b32 $0, $1", "=v,A"(i16 bitcast (half 1.0 to i16))
+ %v0 = tail call i32 asm "v_mov_b32 $0, $1", "=v,A"(trunc i32 bitcast (float 1.0 to i32) to i16)
----------------
rampitec wrote:
I do not see a problem with the original test. It does not expect an inline literal, it uses 0x3c00 which is a correct value not interpreted in any way other than literal. I.e. `i16 bitcast (half 1.0 to i16)` to me looks exactly as 0x3c00, which is the substituted and used in the mov as a constant. If it were expected inline constant here the check would be (incorrectly) `v_mov_b32 {{v[0-9]+}}, 1.0`.
https://github.com/llvm/llvm-project/pull/81345
More information about the llvm-commits
mailing list