[過去ログ] Qiita 3 - キータぞ、来たぞ、キータだぞー (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
263
(2): デフォルトの名無しさん [sage] 2023/08/10(木) 19:46:00.32 ID:c2H9n5TK(3/9) AAS
記事の計算による方法
void hoge(int n, int num[n], int deleteNum)
{
 for (int i = 0; i < n; i++) {
  for (int i = 0; i < 6; i++) {
   num[i] -= deleteNum * (deleteNum == num[i]); // deleteNumで指定した要素を消す
  }
 }
}
hoge: xorl  %r11d, %r11d
    leaq  24(%rsi), %r10
    xorl  %r9d, %r9d
    testl  %edi, %edi
    jle   .L9
.L2:  movq  %rsi, %rax
.L4:  movl  (%rax), %ecx
    movl  %r9d, %r8d
    cmpl  %edx, %ecx
    cmove  %edx, %r8d
    addq  $4, %rax
    subl  %r8d, %ecx
    movl  %ecx, -4(%rax)
    cmpq  %r10, %rax
    jne   .L4
    addl  $1, %r11d
    cmpl  %r11d, %edi
    jne   .L2
    ret
.L9:  ret
https://godbolt.org/z/do55an9P9

cmov命令吐いてる
268: デフォルトの名無しさん [sage] 2023/08/10(木) 20:21:25.47 ID:c2H9n5TK(6/9) AAS
>>263訂正
void hoge(int n, int num[n], int deleteNum)
{
 for (int i = 0; i < 6; i++) {
  num[i] -= deleteNum * (deleteNum == num[i]); // deleteNumで指定した要素を消す
 }
}
hoge:
    leaq  24(%rsi), %r8
    xorl  %edi, %edi
.L2:
    movl  (%rsi), %eax
    movl  %edi, %ecx
    cmpl  %edx, %eax
    cmove  %edx, %ecx
    addq  $4, %rsi
    subl  %ecx, %eax
    movl  %eax, -4(%rsi)
    cmpq  %rsi, %r8
    jne   .L2
    ret
https://godbolt.org/z/br4nPfcEa
270: デフォルトの名無しさん [sage] 2023/08/10(木) 20:25:05.76 ID:c2H9n5TK(8/9) AAS
すまん>>263再度訂正
void hoge(int n, int num[n], int deleteNum)
{
 for (int i = 0; i < n; i++) {
  num[i] -= deleteNum * (deleteNum == num[i]); // deleteNumで指定した要素を消す
 }
}
hoge:
    testl  %edi, %edi
    jle   .L1
    movslq %edi, %rdi
    leaq  (%rsi,%rdi,4), %r8
    xorl  %edi, %edi
.L3:
    movl  (%rsi), %eax
    movl  %edi, %ecx
    cmpl  %edx, %eax
    cmove  %edx, %ecx
    addq  $4, %rsi
    subl  %ecx, %eax
    movl  %eax, -4(%rsi)
    cmpq  %rsi, %r8
    jne   .L3
.L1:
    ret
https://godbolt.org/z/9K6dj7Goc
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.037s