<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/58890>58890</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            reg2mem should ignore EH instructions
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          Naville
      </td>
    </tr>
</table>

<pre>
    ```
; ModuleID = 'bugpoint-reduced-simplified.bc'
source_filename = "Test.cpp"
target datalayout = "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-windows-msvc19.29.30140"

declare dso_local void @"?read_mem@@YAXPEAD0_K@Z"() local_unnamed_addr #0

define dso_local void @"?memcpy_seh@@YA_NPEAX_KPEBX1@Z"() local_unnamed_addr #0 personality i8* bitcast (i32 (...)* @__C_specific_handler to i8*) {
entry:
  invoke void @"?read_mem@@YAXPEAD0_K@Z"() #1
          to label %cleanup unwind label %catch.dispatch

catch.dispatch:                                   ; preds = %entry
  %0 = catchswitch within none [label %__except] unwind to caller

__except:                                         ; preds = %catch.dispatch
  %1 = catchpad within %0 [i8* null]
  unreachable

cleanup:                                          ; preds = %entry
  ret void
}

declare dso_local i32 @__C_specific_handler(...)

attributes #0 = { "tune-cpu"="generic" }
attributes #1 = { noinline }

!llvm.ident = !{!0}

!0 = !{!"clang version 14.0.6 (https://github.com/llvm/llvm-project.git f28c006a5895fc0e329fe15fead81e37457cb1d1)"}
```


Reproducible with ``bin/opt -reg2mem bugpoint-reduced-simplified.ll``, my attempted fix was to add CatchSwitchInst ignoring logic in reg2mem's ``valueEscapes``, not sure if this is the correct fix, or if this has been fixed in upstream
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJydVU2TmzgQ_TX2RWVKCIPh4MN4PFObSm0qtdnD7F4oITVGWSFRSNjjf78tMB7PbCabxIWFhLr7PfWXKivP20VGLw_dL-jdItmR360cNHzYk0WCf7aphkNnlfGrHuQgQK6cajutagUyqgQKTKrODr2AslYaDG_hos3-BOcj0XU4neQ87w_gieSea362g58lYdUukrvTqmMbipOEjUNYxq-XYZatx2Gl5kmdB6WY5SuTh0k26-DeF_z8Ft_3qtNXls95VqJgJ1YnZaQ9uVXrjiIuIlZECY3X9Ko-jRKE5j0Q6WypreCaHK2SZDEJJo89cFm20IYPa_rX3dPnh7s9LT_i4u8gEfgUZNQsBxP8JUsuZY9cEvoaqFbmfRyEEN25dNDMSOUnhHoqP35-2D3FPwRHOuidNVwrfyYKJe9IpbzgDiPDcpWw8IqiCE2EPbRZlvel60BgDoiy4UZq6Im3k3JAWmx2E30wvj9jEKYVIcoc7T_wS85CqvFsZv4hpuYVaNxMhQZuho4MJoTw5jv3oomkcl2Y3Pr2zU5yY_jdXyiQDgvBXTInnU544YVrOm6Mpt0J3dgQHBtliLEYx0W6uxIrS3gW0PlFup9J43kwROjNW5pXuR8i-A7Nb3lh5Bu_8O24nMlOB0l3UzqYQWtkOWsNBiMmGl5peOXOKQA_Q_N_3NljnYZUuaBs9t8vwTFVv52dLxl8Y4F7bALV4MFNdTBS2OxCP_CDgZXohjFB9zgewECvsNshxMzjtX581TfYLXWo2jeMFyzW-thGSuIpLweOQ6mwmP5XlL6WQGQ8rzmQI1arsobE64hGWajNxvvOhSJjj_gcMIJDFQnb4iLgXV6rrrdfQfgIBUjNckFpxtO8SGtBIWFFDXFaYyXmMSSbdboRVSzjsebZC7k3t8XN-AegfbwfFGbFmEVkkqyUQQK28wTvjwPDMiffu1Aw0SYAdk_aM0EXQ9t5kKRWz-TEXSgR7FzkPiTsl7HAPhjsVOpgbK_QPdoelMA-Qy5oeD-5C5Uj1wM8OME7cC8oxnriBkwkVRPMfUfw8Q0QYfse3RWAg5jtrwIN0qgATNhCZog1dM5jTbRL2MZZtinyjCbFUm4TWSQFX3rlNWzn47vGDlpOjIE8_IYGUHsQHqPqlkOvtz8XUFwq5wY8E3tM87ygy2aLkUzTvOYVZXlebXiWVbKK16wqJM9kXCzHLuS2WOIYXwMnMpoIsU73S7VllLE4pgUt8PYtorrOIa8LQddJztZyg1UGLVc6GvPZ9odlvx0pYWgdbmrlvHvZ5M7haQFGOLTPB9_YfvuJHxU2u-UIvR2p_wvo2n3S">