Skip to content

Add Xtensa va_arg assembly coverage#157108

Open
SergioGasquez wants to merge 1 commit into
rust-lang:mainfrom
SergioGasquez:test/xtensa-vaarg
Open

Add Xtensa va_arg assembly coverage#157108
SergioGasquez wants to merge 1 commit into
rust-lang:mainfrom
SergioGasquez:test/xtensa-vaarg

Conversation

@SergioGasquez
Copy link
Copy Markdown
Contributor

Add Xtensa va_arg assembly coverage, see #156568

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels May 29, 2026
@rustbot
Copy link
Copy Markdown
Collaborator

rustbot commented May 29, 2026

r? @adwinwhite

rustbot has assigned @adwinwhite.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

  • Owners of files modified in this PR: compiler
  • compiler expanded to 73 candidates
  • Random selection from 18 candidates

@SergioGasquez
Copy link
Copy Markdown
Contributor Author

r? folkertdev

@rustbot rustbot assigned folkertdev and unassigned adwinwhite May 29, 2026
@rust-log-analyzer
Copy link
Copy Markdown
Collaborator

The job aarch64-gnu-llvm-21-1 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
test [assembly] tests/assembly-llvm/compiletest-self-test/use-minicore-no-run.rs ... ok
test [assembly] tests/assembly-llvm/cstring-merging.rs ... ok
test [assembly] tests/assembly-llvm/cmse.rs#hard ... ok
test [assembly] tests/assembly-llvm/cmse.rs#soft ... ok
test [assembly] tests/assembly-llvm/c-variadic/xtensa.rs#XTENSA ... FAILED
test [assembly] tests/assembly-llvm/emit-intel-att-syntax.rs#att ... ignored, only executed when the architecture is x86_64
test [assembly] tests/assembly-llvm/emit-intel-att-syntax.rs#intel ... ignored, only executed when the architecture is x86_64
test [assembly] tests/assembly-llvm/force-target-feature.rs ... ignored, only executed when the architecture is x86_64
test [assembly] tests/assembly-llvm/is_aligned.rs#opt-size ... ignored, only executed when the architecture is x86_64
test [assembly] tests/assembly-llvm/is_aligned.rs#opt-speed ... ignored, only executed when the architecture is x86_64
---
test [assembly] tests/assembly-llvm/x86_64-windows-i128-abi.rs#softfloat ... ok

failures:

---- [assembly] tests/assembly-llvm/c-variadic/xtensa.rs#XTENSA stdout ----
------FileCheck stdout------------------------------

------FileCheck stderr------------------------------
/checkout/tests/assembly-llvm/c-variadic/xtensa.rs:50:13: error: XTENSA: expected string not found in input
 // XTENSA: maxu [[F64_STACK_OFF:a[0-9]+]], [[F64_OFF]], {{a[0-9]+}}
            ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/assembly-llvm/c-variadic/xtensa.XTENSA/xtensa.s:12:16: note: scanning from here
 addi a8, a9, 8
               ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/assembly-llvm/c-variadic/xtensa.XTENSA/xtensa.s:12:16: note: with "F64_OFF" equal to "a9"
 addi a8, a9, 8
               ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/assembly-llvm/c-variadic/xtensa.XTENSA/xtensa.s:16:2: note: possible intended match here
 add a9, a10, a9
 ^
/checkout/tests/assembly-llvm/c-variadic/xtensa.rs:79:13: error: XTENSA: expected string not found in input
 // XTENSA: maxu [[I32_STACK_OFF:a[0-9]+]], [[I32_OFF]], {{a[0-9]+}}
            ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/assembly-llvm/c-variadic/xtensa.XTENSA/xtensa.s:47:16: note: scanning from here
 addi a8, a9, 4
               ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/assembly-llvm/c-variadic/xtensa.XTENSA/xtensa.s:47:16: note: with "I32_OFF" equal to "a9"
 addi a8, a9, 4
               ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/assembly-llvm/c-variadic/xtensa.XTENSA/xtensa.s:51:2: note: possible intended match here
 add a9, a10, a9
 ^
/checkout/tests/assembly-llvm/c-variadic/xtensa.rs:106:13: error: XTENSA: expected string not found in input
 // XTENSA: maxu [[I64_STACK_OFF:a[0-9]+]], [[I64_OFF]], {{a[0-9]+}}
            ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/assembly-llvm/c-variadic/xtensa.XTENSA/xtensa.s:80:16: note: scanning from here
 addi a8, a9, 8
               ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/assembly-llvm/c-variadic/xtensa.XTENSA/xtensa.s:80:16: note: with "I64_OFF" equal to "a9"
 addi a8, a9, 8
               ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/assembly-llvm/c-variadic/xtensa.XTENSA/xtensa.s:84:2: note: possible intended match here
 add a9, a10, a9
 ^

Input file: /checkout/obj/build/aarch64-unknown-linux-gnu/test/assembly-llvm/c-variadic/xtensa.XTENSA/xtensa.s
Check file: /checkout/tests/assembly-llvm/c-variadic/xtensa.rs

-dump-input=help explains the following input dump.

Input was:
<<<<<<
             1:  .file "xtensa.890a17638639935e-cgu.0" 
             2:  .section .text.read_f64,"ax",@progbits 
             3:  .global read_f64 
             4:  .p2align 2 
             5:  .type read_f64,@function 
             6: read_f64: 
             7:  .cfi_startproc 
             8:  l32i a8, a2, 8 
             9:  addi a8, a8, 7 
            10:  movi a9, -8 
            11:  and a9, a8, a9 
            12:  addi a8, a9, 8 
check:50'0                     X error: no match found
check:50'1                       with "F64_OFF" equal to "a9"
            13:  movi a10, 25 
check:50'0      ~~~~~~~~~~~~~~
            14:  bgeu a8, a10, .LBB0_2 
check:50'0      ~~~~~~~~~~~~~~~~~~~~~~~
            15:  l32i a10, a2, 4 
check:50'0      ~~~~~~~~~~~~~~~~~
            16:  add a9, a10, a9 
check:50'0      ~~~~~~~~~~~~~~~~~
check:50'2       ?                possible intended match
            17:  s32i a8, a2, 8 
check:50'0      ~~~~~~~~~~~~~~~~
            18:  l32i a2, a9, 0 
check:50'0      ~~~~~~~~~~~~~~~~
            19:  l32i a3, a9, 4 
check:50'0      ~~~~~~~~~~~~~~~~
            20:  ret 
check:50'0      ~~~~~
            21: .LBB0_2: 
check:50'0      ~~~~~~~~~
            22:  movi a8, 32 
check:50'0      ~~~~~~~~~~~~~
            23:  bgeu a8, a9, .LBB0_4 
check:50'0      ~~~~~~~~~~~~~~~~~~~~~~
            24:  or a8, a9, a9 
check:50'0      ~~~~~~~~~~~~~~~
            25: .LBB0_4: 
check:50'0      ~~~~~~~~~
            26:  l32i a9, a2, 0 
check:50'0      ~~~~~~~~~~~~~~~~
            27:  add a9, a9, a8 
check:50'0      ~~~~~~~~~~~~~~~~
            28:  addi a8, a8, 8 
check:50'0      ~~~~~~~~~~~~~~~~
            29:  s32i a8, a2, 8 
check:50'0      ~~~~~~~~~~~~~~~~
            30:  l32i a2, a9, 0 
check:50'0      ~~~~~~~~~~~~~~~~
            31:  l32i a3, a9, 4 
check:50'0      ~~~~~~~~~~~~~~~~
            32:  ret 
check:50'0      ~~~~~
            33: .Lfunc_end0: 
check:50'0      ~~~~~~~~~~~~~
            34:  .size read_f64, .Lfunc_end0-read_f64 
check:50'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            35:  .cfi_endproc 
check:50'0      ~~~~~~~~~~~~~~
            36:  
check:50'0      ~
            37:  .section .text.read_i32,"ax",@progbits 
check:50'0      ~~~~~~~~~~~~~~~~~~~~~~~~
            38:  .global read_i32 
            39:  .p2align 2 
            40:  .type read_i32,@function 
            41: read_i32: 
            42:  .cfi_startproc 
            43:  l32i a8, a2, 8 
            44:  addi a8, a8, 3 
            45:  movi a9, -4 
            46:  and a9, a8, a9 
            47:  addi a8, a9, 4 
check:79'0                     X error: no match found
check:79'1                       with "I32_OFF" equal to "a9"
            48:  movi a10, 25 
check:79'0      ~~~~~~~~~~~~~~
            49:  bgeu a8, a10, .LBB1_2 
check:79'0      ~~~~~~~~~~~~~~~~~~~~~~~
            50:  l32i a10, a2, 4 
check:79'0      ~~~~~~~~~~~~~~~~~
            51:  add a9, a10, a9 
check:79'0      ~~~~~~~~~~~~~~~~~
check:79'2       ?                possible intended match
            52:  s32i a8, a2, 8 
check:79'0      ~~~~~~~~~~~~~~~~
            53:  l32i a2, a9, 0 
check:79'0      ~~~~~~~~~~~~~~~~
            54:  ret 
check:79'0      ~~~~~
            55: .LBB1_2: 
check:79'0      ~~~~~~~~~
            56:  movi a8, 32 
check:79'0      ~~~~~~~~~~~~~
            57:  bgeu a8, a9, .LBB1_4 
check:79'0      ~~~~~~~~~~~~~~~~~~~~~~
            58:  or a8, a9, a9 
check:79'0      ~~~~~~~~~~~~~~~
            59: .LBB1_4: 
check:79'0      ~~~~~~~~~
            60:  l32i a9, a2, 0 
check:79'0      ~~~~~~~~~~~~~~~~
            61:  add a9, a9, a8 
check:79'0      ~~~~~~~~~~~~~~~~
            62:  addi a8, a8, 4 
check:79'0      ~~~~~~~~~~~~~~~~
            63:  s32i a8, a2, 8 
check:79'0      ~~~~~~~~~~~~~~~~
            64:  l32i a2, a9, 0 
check:79'0      ~~~~~~~~~~~~~~~~
            65:  ret 
check:79'0      ~~~~~
            66: .Lfunc_end1: 
check:79'0      ~~~~~~~~~~~~~
            67:  .size read_i32, .Lfunc_end1-read_i32 
check:79'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            68:  .cfi_endproc 
check:79'0      ~~~~~~~~~~~~~~
            69:  
check:79'0      ~
            70:  .section .text.read_i64,"ax",@progbits 
check:79'0      ~~~~~~~~~~~~~~~~~~~~~~~~
            71:  .global read_i64 
            72:  .p2align 2 
            73:  .type read_i64,@function 
            74: read_i64: 
            75:  .cfi_startproc 
            76:  l32i a8, a2, 8 
            77:  addi a8, a8, 7 
            78:  movi a9, -8 
            79:  and a9, a8, a9 
            80:  addi a8, a9, 8 
check:106'0                    X error: no match found
check:106'1                      with "I64_OFF" equal to "a9"
            81:  movi a10, 25 
check:106'0     ~~~~~~~~~~~~~~
            82:  bgeu a8, a10, .LBB2_2 
check:106'0     ~~~~~~~~~~~~~~~~~~~~~~~
            83:  l32i a10, a2, 4 
check:106'0     ~~~~~~~~~~~~~~~~~
            84:  add a9, a10, a9 
check:106'0     ~~~~~~~~~~~~~~~~~
check:106'2      ?                possible intended match
            85:  s32i a8, a2, 8 
check:106'0     ~~~~~~~~~~~~~~~~
            86:  l32i a2, a9, 0 
check:106'0     ~~~~~~~~~~~~~~~~
            87:  l32i a3, a9, 4 
check:106'0     ~~~~~~~~~~~~~~~~
            88:  ret 
check:106'0     ~~~~~
            89: .LBB2_2: 
check:106'0     ~~~~~~~~~
            90:  movi a8, 32 
check:106'0     ~~~~~~~~~~~~~
            91:  bgeu a8, a9, .LBB2_4 
check:106'0     ~~~~~~~~~~~~~~~~~~~~~~
            92:  or a8, a9, a9 
check:106'0     ~~~~~~~~~~~~~~~
            93: .LBB2_4: 
check:106'0     ~~~~~~~~~
            94:  l32i a9, a2, 0 
check:106'0     ~~~~~~~~~~~~~~~~
            95:  add a9, a9, a8 
check:106'0     ~~~~~~~~~~~~~~~~
            96:  addi a8, a8, 8 
check:106'0     ~~~~~~~~~~~~~~~~
            97:  s32i a8, a2, 8 
check:106'0     ~~~~~~~~~~~~~~~~
            98:  l32i a2, a9, 0 
check:106'0     ~~~~~~~~~~~~~~~~
            99:  l32i a3, a9, 4 
check:106'0     ~~~~~~~~~~~~~~~~
           100:  ret 
check:106'0     ~~~~~
           101: .Lfunc_end2: 
check:106'0     ~~~~~~~~~~~~~
           102:  .size read_i64, .Lfunc_end2-read_i64 
check:106'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           103:  .cfi_endproc 
check:106'0     ~~~~~~~~~~~~~~
           104:  
check:106'0     ~
           105:  .global read_ptr 
check:106'0     ~~~~~~~~~~~~~~~~~~
           106:  .type read_ptr,@function 
check:106'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
           107: read_ptr = read_i32 
check:106'0     ~~~~~~~~~~~~~~~~~~~~
           108:  .ident "rustc version 1.98.0-nightly (0213b4fd6 2026-05-29)" 
check:106'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           109:  .section ".note.GNU-stack","",@progbits 
check:106'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>

------------------------------------------

error in revision `XTENSA`: verification with 'FileCheck' failed
status: exit status: 1
command: "/usr/lib/llvm-21/bin/FileCheck" "--input-file" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/assembly-llvm/c-variadic/xtensa.XTENSA/xtensa.s" "/checkout/tests/assembly-llvm/c-variadic/xtensa.rs" "--check-prefix=CHECK" "--check-prefix" "XTENSA" "--allow-unused-prefixes" "--dump-input-context" "100"
stdout: none
--- stderr -------------------------------
/checkout/tests/assembly-llvm/c-variadic/xtensa.rs:50:13: error: XTENSA: expected string not found in input
 // XTENSA: maxu [[F64_STACK_OFF:a[0-9]+]], [[F64_OFF]], {{a[0-9]+}}
            ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/assembly-llvm/c-variadic/xtensa.XTENSA/xtensa.s:12:16: note: scanning from here
 addi a8, a9, 8
               ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/assembly-llvm/c-variadic/xtensa.XTENSA/xtensa.s:12:16: note: with "F64_OFF" equal to "a9"
 addi a8, a9, 8
               ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/assembly-llvm/c-variadic/xtensa.XTENSA/xtensa.s:16:2: note: possible intended match here
 add a9, a10, a9
 ^
/checkout/tests/assembly-llvm/c-variadic/xtensa.rs:79:13: error: XTENSA: expected string not found in input
 // XTENSA: maxu [[I32_STACK_OFF:a[0-9]+]], [[I32_OFF]], {{a[0-9]+}}
            ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/assembly-llvm/c-variadic/xtensa.XTENSA/xtensa.s:47:16: note: scanning from here
 addi a8, a9, 4
               ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/assembly-llvm/c-variadic/xtensa.XTENSA/xtensa.s:47:16: note: with "I32_OFF" equal to "a9"
 addi a8, a9, 4
               ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/assembly-llvm/c-variadic/xtensa.XTENSA/xtensa.s:51:2: note: possible intended match here
 add a9, a10, a9
 ^
/checkout/tests/assembly-llvm/c-variadic/xtensa.rs:106:13: error: XTENSA: expected string not found in input
 // XTENSA: maxu [[I64_STACK_OFF:a[0-9]+]], [[I64_OFF]], {{a[0-9]+}}
            ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/assembly-llvm/c-variadic/xtensa.XTENSA/xtensa.s:80:16: note: scanning from here
 addi a8, a9, 8
               ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/assembly-llvm/c-variadic/xtensa.XTENSA/xtensa.s:80:16: note: with "I64_OFF" equal to "a9"
 addi a8, a9, 8
               ^
/checkout/obj/build/aarch64-unknown-linux-gnu/test/assembly-llvm/c-variadic/xtensa.XTENSA/xtensa.s:84:2: note: possible intended match here
 add a9, a10, a9
 ^

Input file: /checkout/obj/build/aarch64-unknown-linux-gnu/test/assembly-llvm/c-variadic/xtensa.XTENSA/xtensa.s
Check file: /checkout/tests/assembly-llvm/c-variadic/xtensa.rs

-dump-input=help explains the following input dump.

Input was:
<<<<<<
             1:  .file "xtensa.890a17638639935e-cgu.0" 
             2:  .section .text.read_f64,"ax",@progbits 
             3:  .global read_f64 
             4:  .p2align 2 
             5:  .type read_f64,@function 
             6: read_f64: 
             7:  .cfi_startproc 
             8:  l32i a8, a2, 8 
             9:  addi a8, a8, 7 
            10:  movi a9, -8 
            11:  and a9, a8, a9 
            12:  addi a8, a9, 8 
check:50'0                     X error: no match found
check:50'1                       with "F64_OFF" equal to "a9"
            13:  movi a10, 25 
check:50'0      ~~~~~~~~~~~~~~
            14:  bgeu a8, a10, .LBB0_2 
check:50'0      ~~~~~~~~~~~~~~~~~~~~~~~
            15:  l32i a10, a2, 4 
check:50'0      ~~~~~~~~~~~~~~~~~
            16:  add a9, a10, a9 
check:50'0      ~~~~~~~~~~~~~~~~~
check:50'2       ?                possible intended match
            17:  s32i a8, a2, 8 
check:50'0      ~~~~~~~~~~~~~~~~
            18:  l32i a2, a9, 0 
check:50'0      ~~~~~~~~~~~~~~~~
            19:  l32i a3, a9, 4 
check:50'0      ~~~~~~~~~~~~~~~~
            20:  ret 
check:50'0      ~~~~~
            21: .LBB0_2: 
check:50'0      ~~~~~~~~~
            22:  movi a8, 32 
check:50'0      ~~~~~~~~~~~~~
            23:  bgeu a8, a9, .LBB0_4 
check:50'0      ~~~~~~~~~~~~~~~~~~~~~~
            24:  or a8, a9, a9 
check:50'0      ~~~~~~~~~~~~~~~
            25: .LBB0_4: 
check:50'0      ~~~~~~~~~
            26:  l32i a9, a2, 0 
check:50'0      ~~~~~~~~~~~~~~~~
            27:  add a9, a9, a8 
check:50'0      ~~~~~~~~~~~~~~~~
            28:  addi a8, a8, 8 
check:50'0      ~~~~~~~~~~~~~~~~
            29:  s32i a8, a2, 8 
check:50'0      ~~~~~~~~~~~~~~~~
            30:  l32i a2, a9, 0 
check:50'0      ~~~~~~~~~~~~~~~~
            31:  l32i a3, a9, 4 
check:50'0      ~~~~~~~~~~~~~~~~
            32:  ret 
check:50'0      ~~~~~
            33: .Lfunc_end0: 
check:50'0      ~~~~~~~~~~~~~
            34:  .size read_f64, .Lfunc_end0-read_f64 
check:50'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            35:  .cfi_endproc 
check:50'0      ~~~~~~~~~~~~~~
            36:  
check:50'0      ~
            37:  .section .text.read_i32,"ax",@progbits 
check:50'0      ~~~~~~~~~~~~~~~~~~~~~~~~
            38:  .global read_i32 
            39:  .p2align 2 
            40:  .type read_i32,@function 
            41: read_i32: 
            42:  .cfi_startproc 
            43:  l32i a8, a2, 8 
            44:  addi a8, a8, 3 
            45:  movi a9, -4 
            46:  and a9, a8, a9 
            47:  addi a8, a9, 4 
check:79'0                     X error: no match found
check:79'1                       with "I32_OFF" equal to "a9"
            48:  movi a10, 25 
check:79'0      ~~~~~~~~~~~~~~
            49:  bgeu a8, a10, .LBB1_2 
check:79'0      ~~~~~~~~~~~~~~~~~~~~~~~
            50:  l32i a10, a2, 4 
check:79'0      ~~~~~~~~~~~~~~~~~
            51:  add a9, a10, a9 
check:79'0      ~~~~~~~~~~~~~~~~~
check:79'2       ?                possible intended match
            52:  s32i a8, a2, 8 
check:79'0      ~~~~~~~~~~~~~~~~
            53:  l32i a2, a9, 0 
check:79'0      ~~~~~~~~~~~~~~~~
            54:  ret 
check:79'0      ~~~~~
            55: .LBB1_2: 
check:79'0      ~~~~~~~~~
            56:  movi a8, 32 
check:79'0      ~~~~~~~~~~~~~
            57:  bgeu a8, a9, .LBB1_4 
check:79'0      ~~~~~~~~~~~~~~~~~~~~~~
            58:  or a8, a9, a9 
check:79'0      ~~~~~~~~~~~~~~~
            59: .LBB1_4: 
check:79'0      ~~~~~~~~~
            60:  l32i a9, a2, 0 
check:79'0      ~~~~~~~~~~~~~~~~
            61:  add a9, a9, a8 
check:79'0      ~~~~~~~~~~~~~~~~
            62:  addi a8, a8, 4 
check:79'0      ~~~~~~~~~~~~~~~~
            63:  s32i a8, a2, 8 
check:79'0      ~~~~~~~~~~~~~~~~
            64:  l32i a2, a9, 0 
check:79'0      ~~~~~~~~~~~~~~~~
            65:  ret 
check:79'0      ~~~~~
            66: .Lfunc_end1: 
check:79'0      ~~~~~~~~~~~~~
            67:  .size read_i32, .Lfunc_end1-read_i32 
check:79'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            68:  .cfi_endproc 
check:79'0      ~~~~~~~~~~~~~~
            69:  
check:79'0      ~
            70:  .section .text.read_i64,"ax",@progbits 
check:79'0      ~~~~~~~~~~~~~~~~~~~~~~~~
            71:  .global read_i64 
            72:  .p2align 2 
            73:  .type read_i64,@function 
            74: read_i64: 
            75:  .cfi_startproc 
            76:  l32i a8, a2, 8 
            77:  addi a8, a8, 7 
            78:  movi a9, -8 
            79:  and a9, a8, a9 
            80:  addi a8, a9, 8 
check:106'0                    X error: no match found
check:106'1                      with "I64_OFF" equal to "a9"
            81:  movi a10, 25 
check:106'0     ~~~~~~~~~~~~~~
            82:  bgeu a8, a10, .LBB2_2 
check:106'0     ~~~~~~~~~~~~~~~~~~~~~~~
            83:  l32i a10, a2, 4 
check:106'0     ~~~~~~~~~~~~~~~~~
            84:  add a9, a10, a9 
check:106'0     ~~~~~~~~~~~~~~~~~
check:106'2      ?                possible intended match
            85:  s32i a8, a2, 8 
check:106'0     ~~~~~~~~~~~~~~~~
            86:  l32i a2, a9, 0 
check:106'0     ~~~~~~~~~~~~~~~~
            87:  l32i a3, a9, 4 
check:106'0     ~~~~~~~~~~~~~~~~
            88:  ret 
check:106'0     ~~~~~
            89: .LBB2_2: 
check:106'0     ~~~~~~~~~
            90:  movi a8, 32 
check:106'0     ~~~~~~~~~~~~~
            91:  bgeu a8, a9, .LBB2_4 
check:106'0     ~~~~~~~~~~~~~~~~~~~~~~
            92:  or a8, a9, a9 
check:106'0     ~~~~~~~~~~~~~~~
            93: .LBB2_4: 
check:106'0     ~~~~~~~~~
            94:  l32i a9, a2, 0 
check:106'0     ~~~~~~~~~~~~~~~~
            95:  add a9, a9, a8 
check:106'0     ~~~~~~~~~~~~~~~~
            96:  addi a8, a8, 8 
check:106'0     ~~~~~~~~~~~~~~~~
            97:  s32i a8, a2, 8 
check:106'0     ~~~~~~~~~~~~~~~~
            98:  l32i a2, a9, 0 
check:106'0     ~~~~~~~~~~~~~~~~
            99:  l32i a3, a9, 4 
check:106'0     ~~~~~~~~~~~~~~~~
           100:  ret 
check:106'0     ~~~~~
           101: .Lfunc_end2: 
check:106'0     ~~~~~~~~~~~~~
           102:  .size read_i64, .Lfunc_end2-read_i64 
check:106'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           103:  .cfi_endproc 
check:106'0     ~~~~~~~~~~~~~~
           104:  
check:106'0     ~
           105:  .global read_ptr 
check:106'0     ~~~~~~~~~~~~~~~~~~
           106:  .type read_ptr,@function 
check:106'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
           107: read_ptr = read_i32 
check:106'0     ~~~~~~~~~~~~~~~~~~~~
           108:  .ident "rustc version 1.98.0-nightly (0213b4fd6 2026-05-29)" 
check:106'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           109:  .section ".note.GNU-stack","",@progbits 
check:106'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>
------------------------------------------

---- [assembly] tests/assembly-llvm/c-variadic/xtensa.rs#XTENSA stdout end ----

@@ -0,0 +1,130 @@
//@ add-minicore
//@ assembly-output: emit-asm
Copy link
Copy Markdown
Contributor

@folkertdev folkertdev May 29, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe you need that //@ min-llvm-version: 22 annotation here as well

View changes since the review

unsafe extern "C" fn read_f64(ap: &mut VaList<'_>) -> f64 {
// CHECK-LABEL: read_f64
//
// XTENSA: l32i{{(\.n)?}} [[F64_NDX:a[0-9]+]], a2, 8
Copy link
Copy Markdown
Contributor

@folkertdev folkertdev May 29, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

idk how you generate this exactly, I just copy things manually from the .s file that pops up in the error message. Not great, but then it should work and be a bit more readable. I wouldn't expect the code to change much.

View changes since the review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants