<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/97904>97904</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
The program results are incorrect when Clang 17 and llc 19 are used in combination during the build process
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
DigOrDog
</td>
</tr>
</table>
<pre>
# Description
When using Clang 17 and [llc 19](https://github.com/llvm/llvm-project) together to build a program, the program is producing incorrect results!
# Enviroment
```
clang version 17.0.6
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/local/bin
LLVM (http://llvm.org/):
LLVM version 19.0.0git
Optimized build with assertions.
Default target: x86_64-unknown-linux-gnu
Host CPU: alderlake
```
# Build Step
in.ll
```
; ModuleID = 'log/seed/6547.ll'
source_filename = "M"
@G = global i8 1
@G.1 = global i32 0
@G.2 = global i1 false
@G.3 = global i32 0
@G.4 = global i64 -9223372036854775808
@G.5 = global float 0x47EFFFFFE0000000
@G.6 = global i1 true
@G.7 = global i32 65536
@G.8 = global i64 9223372036854775807
@my_format_str_int = private unnamed_addr constant [4 x i8] c"%d\0A\00", align 1
@my_format_str_float = private unnamed_addr constant [4 x i8] c"%f\0A\00", align 1
@my_format_str_long = private unnamed_addr constant [5 x i8] c"%ld\0A\00", align 1
@my_format_str_double = private unnamed_addr constant [5 x i8] c"%lf\0A\00", align 1
define float @f(i8 %0, i64 %1) {
BB:
%LGV3 = load i64, ptr @G.8, align 4
%LGV2 = load i32, ptr @G.7, align 4
%LGV7 = load float, ptr @G.5, align 4
%A = alloca i32, align 8
store i64 1, ptr %A, align 4
%L7 = load i8, ptr %A, align 1
%B7 = sub i64 %1, %LGV3
%2 = call i32 (ptr, ...) @printf(ptr @my_format_str_long, i64 %B7)
%L6 = load float, ptr %A, align 4
%L5 = load i32, ptr %A, align 4
%L3 = load i32, ptr %A, align 4
%B8 = fsub float %L6, %LGV7
%3 = call i32 (ptr, ...) @printf(ptr @my_format_str_float, float %B8)
%L4 = load i64, ptr %A, align 4
%L1 = load i32, ptr %A, align 4
store i32 1, ptr %A, align 4
%B4 = mul i32 %L5, %LGV2
%4 = call i32 (ptr, ...) @printf(ptr @my_format_str_int, i32 %B4)
%B3 = udiv i32 %L1, 65536
%5 = call i32 (ptr, ...) @printf(ptr @my_format_str_int, i32 %B3)
%LGV1 = load i32, ptr @G.1, align 4
%LGV = load i8, ptr @G, align 1
%6 = urem i64 %L4, 64
%B5 = ashr i64 -9223372036854775808, %6
%7 = call i32 (ptr, ...) @printf(ptr @my_format_str_long, i64 %B5)
%8 = urem i32 %L5, 32
%B6 = ashr i32 %L3, %8
%9 = call i32 (ptr, ...) @printf(ptr @my_format_str_int, i32 %B6)
%C8 = icmp ule i8 %0, %L7
%10 = zext i1 %C8 to i64
%11 = call i32 (ptr, ...) @printf(ptr @my_format_str_long, i64 %10)
%C = icmp ne i8 %0, %LGV
%12 = zext i1 %C to i64
%13 = call i32 (ptr, ...) @printf(ptr @my_format_str_long, i64 %12)
%14 = add i8 %LGV, 7
%B = srem i8 %0, %14
%15 = zext i8 %B to i64
%16 = call i32 (ptr, ...) @printf(ptr @my_format_str_long, i64 %15)
%RP = alloca float, align 8
store i64 1, ptr %RP, align 4
%L = load i32, ptr %RP, align 4
%C1 = icmp uge i8 %0, %0
%17 = zext i1 %C1 to i64
%18 = call i32 (ptr, ...) @printf(ptr @my_format_str_long, i64 %17)
%19 = urem i32 %LGV1, 32
%B2 = lshr i32 %L, %19
%20 = call i32 (ptr, ...) @printf(ptr @my_format_str_int, i32 %B2)
%21 = load float, ptr %RP, align 4
%22 = call i32 (ptr, ...) @printf(ptr @my_format_str_float, float %21)
store i32 %B2, ptr %A, align 4
store i1 %C, ptr @G.2, align 1
store i32 %B3, ptr @G.3, align 4
store i64 %B5, ptr @G.4, align 4
%CastTrunc = trunc i32 %L1 to i16
%23 = zext i16 %CastTrunc to i64
%24 = call i32 (ptr, ...) @printf(ptr @my_format_str_long, i64 %23)
store float %B8, ptr %RP, align 4
store i1 %C1, ptr @G.6, align 1
store i64 %B7, ptr @G.4, align 4
ret float %21
}
define i32 @main() {
entry:
%0 = call float @f(i8 0, i64 0)
ret i32 0
}
declare i32 @printf(ptr, ...)
```
llc-19 in.ll -o out.o -filetype=obj
clang-17 out.o -o out -no-pie -lm
./out
**Actual Result**
```
-9223372036854775807
0.000000
65536
0
-4611686018427387904
0
1
1
0
1
1
0.000000
0
```
**Expected Result**
```
-9223372036854775807
0.000000
65536
0
-4611686018427387904
0
1
1
0
1
1
0.000000
1
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzUWF1z4ygW_TX4hbIL0Kcf_BDZ7exUpWu6enuzjyksYZkZDC5A6WR-_RYg28iWe5JJXtbl8oc4V5x77oWLLjWGt5KxBcgqkK0mtLM7pRcr3v6uV6qdbFTzugAkgStmas0PlisJ0Aqgu__umISd4bKFS0FlC3EBqWwgyCohaojnIFsBUu6sPRiQ3AGyBmTdcrvrNrNa7QFZC_F8_JoetPqD1RaQObSqZXbHNLQKbjouGkjhQatW0z0gS2h37PgXcuN-Nl3tWHBZK61ZbaFmphPWAIID1f6TJPCLfOZa7Zm0_bUc9W__t_aOPDNtuJIQFzM0y8PID6pbZkFyB1_K_ClPp538U6qfciq47F6mrex63E4z2sC9aphw6IMy_CUM_SaNpUKwZsW1GwJk3RntBFA1FYCsN1zGfB8eHr_CXsGTgE6smdKt_zd3lz0WevCJ-HyGZqjlvZMQ_n6wfM__Yk0v6E9ud5Aaw7SLp5kdcSu2pZ2w0L7RWwj_pYyFy2__cVgqGqYF_ZONansOQuU5_NuyQ7jG5UyIcZukgl9V0wn22wqCZAUBKYRyzhvGGkDWeZYWzpgUwcCoTtfsacsFk3TPehvyFRAyYJGiez_WCrWhAvIS4vPIDA_GEgJRNEgGgxhuqTAsGk9-ZZwOBvMUTueEJElBUJKXWVoUWYnKCJ_F-K1Q1EL0khZf1u71BYVXhM8vyFndxdyKS255liV5BCgv-V3TK07w_evTVuk9tU_G6icurTc-aP5MLYOddBFonmjTaFgrl_wOkVUpfIG8BNkK1i4sJGtAtkR37gP5C0tIBW9lFJLhTEGHfzbX9p1zCSXbt02VXU4l3utXo7qNYP90tr_zzH82bMsl6zMJpGgLSMlLCEiGnIWLOCAZdtswKKpgU1XnbcaNPtw_hhwXijbOxFkerIYhg84zp0MjEhklZGBU3DQqzkae9MAsGze78zZUuH31OFVAlUeUsUoz7y4-3ZFkdzdoRCR4OY7HEb4KeNNtIkGXR-kiYFCkpiIsRkDKg9UOOpvNfAhSdNBc2m0YgaPZGcWtKlxNiIjnt9S77Ws2HqXbBsk7Daqwx2ydPH0eOqZnhYoInHxUoZPbp6mq8kKkdDyZb3uM3-Nxn2kJeUumVYHLvju6mz1kZ2FIhEw_KgyXXpZ-miodilIF4buGP5-YeP5RwfDA7JN5JBfBuX-8obav0ze3jdEFm6L78QUblkmn2f64kh58HuSD2ARXqdnp25U7xCoWqPjsNZ4NFSoj7nHKJHG2VHnEvUclPdkyws0_OZr5kOsykOX1_gA7wWBUefw2G0Ex8tC_2It155hgbJVfoREKf7K6GF0wPhOWV3zvH2Mq5IrwCN8P72eXfMmQLw77Am2anqwjSZYwlrYK1clnzMAhPKCaRf6Uwe7an_yz_bnI7u_f4lp-2szfVM2_f7uxPdzavscMXBxxlLXtZRagWI7iKgfwiGjlZ4t2Ufbx_HpPuH_E17tCfyKLd4VjKsT3I-iTt4WLpCX49jHlVhDJh89O1ycDgiNe57rdM35LlQ8xH9So65P45b2TAT65ffdzAYjw6bg-S2rsD93J2stk_a9TIfc5ieMqRZI4c_PhHa4ymHz49HGRwSS5Un5wXvt1OgzExwN18tvqn4_Mf6OmZnaQI-FxqliNPFd5MVK0p1wCUg6eopi0-nX4IBUtq8sHstPTWFyPHJG4oXBJoRZUnzjE-p8j84vOjBD1FM-hb8bAqYKqszMFp1sumH09MJCs1OaPqE02xcUR48FwKtX0wBmcin2AzQBZq-7YaSPufVfbjgr43TfowqVRSiOHq76EoVnc9IiOo0fLNMc4L3OEy5QUSVnMUToA4MHX-MXBHGhcNE_-y8uB1ZY1_18e4VGGk2aRNPNkTidsgQuCSJkkWTHZLSjdJvM5y0jBcpxmeVKzbcmSTYYbQprNZsIXBJEUFSjHOZnjYlZQXCJKtgmiDcVFDlLE9pSL2bF9OeHGdGwxd75MBN0wYXwHmhCfW4AQkK0meuF7w5uuNSBFghtrznew3Aq2-BF1g_u2L_Sr4NQM_rljctihDu1pD-sMayCXsFb7DZfUciVh02kuW99nDt3Sg1Y1M2bSabF4bzt77R01gKyDr88L8r8AAAD__4uvSYk">