[DAG] isGuaranteedNotToBeUndefOrPoison - handle FrameIndex/TargetFrameIndex

Fixes #58904
This commit is contained in:
Simon Pilgrim 2022-11-22 18:16:09 +00:00
parent 073aebc431
commit 629f17c516
2 changed files with 22 additions and 0 deletions

View File

@ -4560,6 +4560,8 @@ bool SelectionDAG::isGuaranteedNotToBeUndefOrPoison(SDValue Op,
switch (Opcode) {
case ISD::VALUETYPE:
case ISD::FrameIndex:
case ISD::TargetFrameIndex:
return true;
case ISD::UNDEF:

View File

@ -0,0 +1,20 @@
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc < %s -mtriple=wasm32-- | FileCheck %s
define i64 @PR58904() {
; CHECK-LABEL: PR58904:
; CHECK: .functype PR58904 () -> (i64)
; CHECK-NEXT: # %bb.0: # %BB
; CHECK-NEXT: global.get __stack_pointer
; CHECK-NEXT: i32.const 16
; CHECK-NEXT: i32.sub
; CHECK-NEXT: i32.const 8
; CHECK-NEXT: i32.add
; CHECK-NEXT: i64.extend_i32_u
; CHECK-NEXT: # fallthrough-return
BB:
%A = alloca i64
%C2 = ptrtoint i64* %A to i64
%B2 = urem i64 %C2, -1
ret i64 %B2
}