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

    <tr>
        <th>Summary</th>
        <td>
            LLVM Error on M1 Mac when using llc to optimize LLVM IR
        </td>
    </tr>

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

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

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

<pre>
    LLVM ERROR when trying to run llc on this .ll file with optimization level -O1 or higher:

```
declare void @raise (i32)
declare void @abort ()
declare i64 @calloc (i64, i64)define i32 @_c0_main () {
dummy_entry__c0_main:
br label %entry__c0_main
entry__c0_main:
%t44 = bitcast i32 1 to i32
%t211 = icmp slt i32 %t44, 0
br i1 %t211, label %MEM, label %.L14
.L14:
%t45 = sext i32 %t44 to i64
%t46 = mul i64 4, %t45
%t47 = add i64 8, %t46
%t49 = bitcast i64 1 to i64
%t52 = call i64 @calloc (i64 %t47, i64 %t49)
%t196 = icmp eq i64 %t52, 0
br i1 %t196, label %MEM, label %.L15
.L15:
%t217 = inttoptr i64 %t52 to i64*
store i64 %t45, i64* %t217
%t53 = add i64 8, %t52
%t54 = bitcast i64 %t53 to i64
br label %.L1
.L1:
%t55 = bitcast i32 2 to i32
%t56 = bitcast i32 3 to i32
%t218 = icmp slt i32 %t55, %t56
br i1 %t218, label %.L3, label %.L4
.L4:
%t83 = bitcast i32 0 to i32
ret i32 %t83
.L3:
%t110 = bitcast i32 4 to i32
%t111 = bitcast i32 5 to i32
%t198 = icmp eq i32 %t110, %t111
br i1 %t198, label %.L8, label %.L9
.L8:
br label %.L5
.L5:
%t145 = bitcast i32 8 to i32
br label %.L10
.L10:
%t146 = bitcast i32 %t145 to i32
%t147 = bitcast i32 9 to i32
%t194 = icmp slt i32 %t146, %t147
br i1 %t194, label %.L12, label %.L13
.L12:
%t157 = phi i32 [ %t145, %.L10 ], [ %t168, %.L11 ]
%t202 = icmp eq i64 %t54, 0
br i1 %t202, label %MEM, label %.L21
.L21:
%t161 = add i64 %t54, -8
%t209 = inttoptr i64 %t161 to i32*
%t162 = load i32, i32* %t209
%t210 = icmp slt i32 %t157, 0
br i1 %t210, label %MEM, label %.L19
.L19:
%t212 = icmp sge i32 %t157, %t162
br i1 %t212, label %MEM, label %.L20
.L20:
%t163 = sext i32 %t157 to i64
%t213 = mul i64 %t163, 4
%t214 = add i64 %t54, %t213
%t215 = add i64 0, %t214
%t165 = bitcast i32 10 to i32
%t216 = inttoptr i64 %t215 to i32*
store i32 %t165, i32* %t216
%t167 = bitcast i32 1 to i32
%t168 = add i32 %t157, %t167
br label %.L11
.L11:
%t170 = bitcast i32 9 to i32
%t197 = icmp slt i32 %t168, %t170
br i1 %t197, label %.L12, label %.L13
.L13:
br label %.L7
.L7:
br label %.L2
.L2:
%t134 = bitcast i32 2 to i32
%t135 = bitcast i32 3 to i32
%t195 = icmp slt i32 %t134, %t135
br i1 %t195, label %.L3, label %.L4
.L9:
%t183 = bitcast i32 6 to i32
%t208 = icmp eq i64 %t54, 0
br i1 %t208, label %MEM, label %.L18
.L18:
%t184 = add i64 %t54, -8
%t199 = inttoptr i64 %t184 to i32*
%t185 = load i32, i32* %t199
%t200 = icmp slt i32 %t183, 0
br i1 %t200, label %MEM, label %.L16
.L16:
%t201 = icmp sge i32 %t183, %t185
br i1 %t201, label %MEM, label %.L17
.L17:
%t186 = sext i32 %t183 to i64
%t203 = mul i64 %t186, 4
%t204 = add i64 %t54, %t203
%t205 = add i64 0, %t204
%t206 = inttoptr i64 %t205 to i32*
%t189 = load i32, i32* %t206
%t191 = bitcast i32 7 to i32
%t207 = icmp slt i32 %t189, %t191
br i1 %t207, label %.L5, label %.L6
.L6:
br label %.L7
MEM:
%t193 = bitcast i32 12 to i32
call void @raise (i32 %t193)
br label %MEM
}

```
What I wrote into the terminal:
> brew install llvm
> sudo nano /etc/paths 
- pasted /opt/homebrew/opt/llvm/bin into path and restarted terminal
- saved the .ll file listed in the "what are you trying to do" section into a known directory
> llc -O1 <file path to .ll file>

Stack dump:
```
Invalid bitcast
  %t319.old = bitcast i64 %7 to i32
Invalid bitcast
  %t319 = bitcast i64 %40 to i32
in function _c0_perceptron
LLVM ERROR: Broken function found, compilation aborted!
PLEASE submit a bug report to https://github.com/Homebrew/homebrew-core/issues and include the crash backtrace.
Stack dump:
0.      Program arguments: llc -O1 ./tests/test_llc.l4.ll
1.      Running pass 'Function Pass Manager' on module './tests/test_llc.l4.ll'.
2.      Running pass 'Module Verifier' on function '@_c0_perceptron'
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  libLLVM.dylib 0x000000010af63cfc llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1  libLLVM.dylib            0x000000010eda817c SignalHandler(int) + 304
2  libsystem_platform.dylib 0x0000000189f1f4a4 _sigtramp + 56
3 libsystem_pthread.dylib  0x0000000189f07ee0 pthread_kill + 288
4 libsystem_c.dylib        0x0000000189e42340 abort + 168
5  libLLVM.dylib 0x000000010ae9c1b0 llvm::report_fatal_error(llvm::Twine const&, bool) + 336
6  libLLVM.dylib            0x000000010ed98310 llvm::report_fatal_error(llvm::StringRef, bool) + 0
7  libLLVM.dylib 0x000000010b1ce6b0 llvm::cl::opt<bool, false, llvm::cl::parser<bool>>::opt<char [30], llvm::cl::OptionHidden, llvm::cl::initializer<bool>, llvm::cl::desc>(char const (&) [30], llvm::cl::OptionHidden const&, llvm::cl::initializer<bool> const&, llvm::cl::desc const&) + 0
8  libLLVM.dylib            0x000000010b11d7dc llvm::FPPassManager::runOnModule(llvm::Module&) + 2548
9  libLLVM.dylib 0x000000010b111ff0 llvm::legacy::PassManagerImpl::run(llvm::Module&) + 1284
10 llc                      0x00000001024794dc compileModule(char**, llvm::LLVMContext&) + 6200
11 llc 0x0000000102477664 main + 1352
12 dyld 0x00000001027c908c start + 520
zsh: abort      llc -O1 ./tests/test_llc.l4.ll
```

brew config:
```
HOMEBREW_VERSION: 4.0.16
ORIGIN: https://github.com/Homebrew/brew
HEAD: 01e0c20d01c6aab28d844280d130f0e745e2ddd9
Last commit: 2 days ago
Core tap JSON: 02 May 18:13 UTC
HOMEBREW_PREFIX: /opt/homebrew
HOMEBREW_CASK_OPTS: []
HOMEBREW_DISPLAY: /private/tmp/com.apple.launchd.KzUViLrq6L/org.xquartz:0
HOMEBREW_MAKE_JOBS: 8
Homebrew Ruby: 2.6.10 => /opt/homebrew/Library/Homebrew/vendor/portable-ruby/2.6.10_1/bin/ruby
CPU: octa-core 64-bit arm_firestorm_icestorm
Clang: 14.0.0 build 1400
Git: 2.37.1 => /Library/Developer/CommandLineTools/usr/bin/git
Curl: 7.79.1 => /usr/bin/curl
macOS: 12.4-arm64
CLT: 14.2.0.0.1.1668646533
Xcode: N/A
Rosetta 2: false
```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUWdly4ygXfhrlhooK0H6Ri2yezkwySSU9PcuNCyFs8zcCD0JJu5_-L9BibU4yrlRsSYezfnwcEKkqvpWMXXjRlRfdnJHa7JS--IUTSYkW6h8iuRLqLFfF4eL-_tsDuH1-fnwGbzsmgdEHLrfAKKBrCYSgQElgdrwCvhBgwwUDb9zsgNobXvKfxHAlgWCvTIDzRwSUBju-3THtBZcevPFg9z-G7Z-7LBgVRDPwqngBvBBqwisGPJzyAHs4WxYiudLGCs0keBxaAUqEUNSpiUMPXwP3lRVswyUDPMBWaE3huiRctoqAl1y1yuqyPKyZNPqw7oT6KHINBMmZAB6OJiLu-YlhHo5MGAIvuAE5N5RUxrmBbH5tqL0QRshJcVruQSUasWa0DQT2XnAEWnl7v_fp4fZhdO3fo7AZ436N_ImcpYr9GFpxHsXhQCx2YmUtXHqdG83wgUziZEhROJm0l4kHMtk4_Dhswx8ai7ATsgVcLGajNWlr2lxlPQzsJcriYwLZv71YhBfzh7L4o_xFff6iUf4waqLm0hi1N3pgqosLt-KVUR06m8x1mLxsi5gMUhAs5zIaoCQKZ7lshw4TOsSqf4_6MEZRRNEMlXiGyiieCQUL0E2XoRtFfQzxHL_pJN_B5LqH7xi9aTBzCY5c0uzoQRp0SoKREoTgTEs4Cwy1c3IoFc2lsnQMvNY2QrALHyE0x980_ul11rmeLpKQf9_jcwxPFM4rm468nuAD9gCBE0Xz6ncGZklomWAomy2kKlxGCgrjPldhMs9VOJ2beHqjLzTC4yCixrH9jjfWoqsuiNaijRt40Y277J7G6fEpck-PcId4mWhOEDXEHxAN7mcoHk9RFKMRJRytnKdDf7JlOrLD2wrgkdbGf6FI0Ty8bmVaf7Ph1IYnChYlJ5Yl-BGt9rhG2YRWB3mttmxqq_V9bvHD_PYAxxOAx8F8JbSAma5OGAWjtbAdbO2MpMIT5Wp1DEWjkSg8SoVD_-YzGcEF_o2XAWCtTADQLkhdrHE0rT6Kh_bnk3reuaA4PcayVLJkkXWOy9IE9MmcmpeYJDkBzH7mWk1zJkn-A5MEJ4g36SSSEwK4B9w4tGDeCc7XXBTMqz5fdFEWnUhA0EMOBdE8AdFnl93x7EQL6248hyJM_xs3ph-xRdpXI534c2qyDbkRZae4MQ0XuTGN3uNGlA25EZ7ixjQ4Ee2H3Bj30cZjboToBDc2tlrf5xY_3CT0WEbJJL_xAjemwZwb4QI3pvGUG-G73AiH3AhPcSMcKTxFenBGeo1L2fur3pD3snnflyxg_RQFpVlfk2zW-GE4paDpjOxBEL_PP7aao5Jl8ymKxvzi9ldLe-7W26DfUg0tWkONleTmnT39nztiwB1408owWxcFzI4Bw3TJJRFHV4NbkGv2BrisjPVHiNfy-KiqCwUkkQp4eMUM9fBqT8yuAo3IOdiTyrDCPlV74-HVTpXM6utvOH14lXPZeGGHAyILoFlliLaDe6danRV5tXd37HjIIbgzw6W77WH8ZsMjmoGDqgenJIXyMAYVo-4gxBkk4LtUbxIUXDNqlD4coxOCumMSL7h2VpxvRvVmveB2mOEXQ-h3UNTl_pi-cdLv5CsRvOiK3twErpwBynwliqUd4xjN7-tYGh-OuxAuwaaWTQbWFK73TFO2N1q1hyPHMyYvuARXWn1ngxEbVcvCzgGqyj0XzYmSO-thhdc1x0_3t5cvFh15yQ0gIK-3QLO90sZ6sjNmX9kU4ZWHV1tudnXuU2Vh8OUIjw4p51Rp5uEVr6qaVQ4aXFJRF8zVmmpS7UBO6HejCWX-yVJA34PZk1ZbTUpA9LYumTTWjb7MvodXhlWmar_XQlBfhL5okYeshudaSgumPakq4OFk1SXmyd54IJJsmfZwApQEpSpqYeGYvKPaPnTq8ZL6h0bFN6b5hveK-2p4OGkPyQZVxMk0Ce4QUNUGVIcyVwJIUjKrPmWyqttJsiOvzM3u80aI_2TaTqiDqjV4uvz6BSgNKmZc1pl85VpJm0LwSjTwYmhhs375--Hq8f7un9vntR3ixQ56e8Wlqzw3lrL6igAgeG7H-cVB8BzAH7D5IEg2cUA3tKGb4NILLqtD1fx40lwaF9tXW3EPp0chTd7WqjKakdLDblnj0rhzQ3wFunMNNLU7-AxcYAVJUULBC99KIr4QWQhbgHSgMegWOexUVofKsHK9F8RslC5nUaXZBm1CEoJ1xbdGk3I_8isY6jA7zUjROTjSARPGIGgl1t-5EE4NTtteKhzooeMQh3pYiIMQgu6c9grYbtwpiN4rDMsoyuGgMM3EXm-IIWLNtFZ6VJKvb1wyQJWsTFuSXCnRZzBog48_W5QsDdB_MP9iNJfbZ7aZWm4pOXkn1hxRFo9ipaL5tmtXcN2ouwYbIirm-oKZ4J7oiulONrh1f0cNdGcnT3QVwPZMY67hcW9n-hdeFEwuS3DJDSduwg4MLYoWrKLuYeosu6o0R-uxy8unPRkV9JMufTDG-jYQGVUp_Rw6coSKpBiyxurJ8nJHyw1gavkoG14dIaW71dvGUdhOiOxdkCC02QxBItiW0ENLVkfrd-Ve9B68bxnhtCUWB3UKFj8DJ3CYZGFB20WZ9dHZKtvO2v4Nc25DuVbSsB_DZMd209OYRc7s2EISxyFoX8ZcARR0Z90Ig-IgipF0QjOYUuBauIbkuoOdn9XOLroN7bjPZ9ffSTPVtb7szaJmw7enuq4vjw-3V8-3f66_3T6_3D3-bs2HPvS7Ddzj890vd-7u5zoT99Vovr28seMgYpBiWEBEY0JynBZpGOIUFiiAG8iSMGK4KIq2W7-3vRlVZcmNHYxBQQ4VIFvVPL5WmgFD9uDXl8ZXiMEDOQC3p0YB-OPr9SSup-fb1d1fVnTeZ48lry9ffls_Pn19ccLuheNE4ubu5en-8u9W2V7zV2Js-2XKvYdXVJU-2e8F8wWpJd0V_m8___jG7_W_8b21rbf-j39ros1PL7icpv_h8rfb9a-PV854O7O6tILnOj-4bPix35xjWsZY2jfc81wTfRjX5JXJwjL_yi4GJBfsXFuFeNXoW6Nmj-HhlbvfJPrpD2tRUUNckwni8Dy3_aou1xtu9x9Kl2tOmx_tGEGkBRpAFkEQ5DUXBUBhN3F-aWvqB4mPBlEcnb5hr0yovW0lVteqLIks7rlkX5USFvh1pXtXt7xt769rbakDJH6SjdQOpakVcuIloY8uyQj74TnRZXcEcH3_tfUdW-995KM4TuMwjoJ2T_8XVQWzMr97eNVOp2dVMWMIwPZ-s9YtTbOz4iIosiAjZ-wCxXaVhmGQnu0uQkqygLIwz8MwT3ABEUuzOKYhzDfJJqRn_AJDHMAIBjCJgij1kxBmSZAjhHHO8mDjhZCVhAvfMpiv9PbM7QYuYhyh4MxtfSv3_hxjafeq9qGHsRfdnOkL19Pm9bbyQmj3idVRi-FGsPaluu0cbG_9gMADoc3r9bqyvbjlJ6O6d-gMOPm757Nai4t3GKPd2Trze63-x6jptzEeXjnf_x8AAP__ugnD0g">