Issue 138034
Summary [NVPTX] Failure in PTX when generating code for `i128` regresses `libc` tests
Labels libc
Assignees
Reporter jhuber6
    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.
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to