<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/138034>138034</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[NVPTX] Failure in PTX when generating code for `i128` regresses `libc` tests
</td>
</tr>
<tr>
<th>Labels</th>
<td>
libc
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
jhuber6
</td>
</tr>
</table>
<pre>
A recent patch seems to have changed the behavior of `i128` on NVPTX targets. This is causing failures as shown in https://godbolt.org/z/cPq69rs1T. This is the reproducer.
```llvm
target triple = "nvptx64-nvidia-cuda"
define i128 @foo() {
entry:
br label %while.cond
while.cond: ; preds = %while.cond, %entry
%0 = load i8, ptr null, align 1
%conv = zext i8 %0 to i128
store i128 %conv, ptr null, align 16
br label %while.cond
}
```
```console
$ clang --target=nvptx64-nvidia-cuda -march=sm_89 bug.bc
```
This will generate an error and the following PTX.
```asm
//
// Generated by LLVM NVPTX Back-End
//
.version 8.7
.target sm_89
.address_size 64
// .globl foo // -- Begin function foo
// @foo
.visible .func (.param .align 16 .b8 func_retval0[16]) foo()
{
.reg .b64 %rd<4>;
// %bb.0: // %entry
bra.uni $L__BB0_1;
$L__BB0_1: // %while.cond
// =>This Inner Loop Header: Depth=1
mov.b64 %rd1, 0;
ld.v2.u4 {%rd2, %rd3}, [%rd1];
st.v2.u64 [%rd1], {%rd2, %rd3};
bra.uni $L__BB0_1;
// -- End function
}
```
```
ptxas reduced.s, line 20; error : Unexpected instruction types specified for 'ld'
ptxas fatal : Ptx assembly aborted due to errors
clang: error: ptxas command failed with exit code 255 (use -v to see invocation)
clang version 21.0.0git
Target: nvptx64-nvidia-cuda
Thread model: posix
InstalledDir: /home/jhuber/Documents/llvm/clang/bin
Build config: +assertions
clang: note: diagnostic msg: Error generating preprocessed source(s) - no preprocessable inputs.
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUVl1v2zoS_TX0y8ACRX3YfvCDXce7BbKLPGSLvgUUOZbYpUhdknKc_voLUrLjFL29vUEAS9TM4QznzBly71VrELek2pPqsOBj6KzbfuvGBl29aKx82-7AoUATYOBBdOARew_BQsfPCKLjpkUJoUNosONnZR3YE5CaqpytSU3BGvjvl6fnrxC4azH4DJ475UF5EHz0yrRw4kqPDj1wD76zrwaUgS6EwZNiR9iRsGNrZWN1yKxrCTt-J-wonv6oN87nzxncAGMUDgdn5SjQZYTuSE2nf63PPaG7KQYITg0agRQHIIyZ8xAudbk0ZyUVX4pRcsJY9KY7iSdlEGIyQEp6spawNWEbIKs9oTs0wb3FKOkOoHGgeYMaCKteO6UxE9bICefuvdjB7_2RYg-DQ-nnQO9B2ae4MG0f9yasoslMWy5BraPBEByYUev4zLVqDeRXW2HNOZl_x0sAtZ78g02JJiMfrLvmPdn_BWT9N7mvDvd1uH8W1nirMS6xEoTmpoXlcioRKQ4_KQsse-5ER4qD71_WG2jGNmvED_iJDa9Ka2jRoOMBgRtA56wDbiaunqzW9jWS7-n56weicN-ngCLrbg_wrxlJQvMGj49f_jNzes_F_5cPU6I3F7rLzui8sgbW2Sq-zrRLQcd3LqVD71-8-o5Ql5MToZt5t6zVttGEbk7Wwry2XMIeW2XgNBoRInbkIv1dLl1hZg7HEJVXjUbIImD8vs4G7ngP2bWwkDXrtN2Lw3DmmpJqn9ekOkT-3zoh1Xg_xZ85bCFr6hJSMpWTpPhUkuKBFPs5yTkMVjVNRmMvvK9c2UzopnE8G42aYMrHl5f9nr7kM8r9wr3_B97d1osDKR4SJz4bgw4erR3g38gluuh-wCFEQuXTxr09f4g_j0yn1_A3WmZnlo3T99U-mbC5GZ0sItnjS7WfnavDzdWH5Dpj31tEj59jXX1_dRz_kADLJTwYeWPRrzuU0N0QLtyDwyipMvMxPh0VkcVDmbsqStUO_mfwMqCITaKMD26caBreBvTgBxTqpFDCyTogbKUlYasb_okHrmecp3AB7j32jX4D3lgXEeWIUZ7Sfp7QXVKLaJ1W4sMEJGzfxyaPMwUlvKrQAV5UAGElAquqSPTRIyzPEc8jgjJnK3g6jMTmSYiuHczyjGa0VSEqyyxNO_jZyIjK45BL6K1EnUKyXl0I3X02PnCtUR6Umynb2R4JO06TlrDjwYqxRxM8Ycc0q9hxSpEdGxWrtB-VliCsOal2wtjHQ3Ix7g8HYmzA-CsVb431QQnoffrykIo1i2LUviENS4HeowRvRyeQsLWP7b0EY---86gUygxj8B_UciG3hdwUG77Abb4qa1pu8rxedNsTzYXcSFHSU1M0nK5l3axFzopGrBtey4XaMsoqWhaU5cW6qLMVl3WVF6XIN02d14KUFHuudBaPIw7-hfJ-xG1erGlRLtK08eniwphWjYgjuzos3DbaL5ux9aSkWvng3xGCCjpddpJ6k-oAx-nuEW8cUc9fOzT3J5RYkxj7fqFx2EbxRh8X0841hYA--MXo9PaHi4sK3dhkwvbvhU0BDs5-QxEIO6a0Yt3nzM5b9mcAAAD__ysK08o">