; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -mtriple=x86_64-linux-gnu -global-isel -verify-machineinstrs < %s -o - | FileCheck %s --check-prefix=X64

define i64 @test_ashr_i64(i64 %arg1, i64 %arg2) {
; X64-LABEL: test_ashr_i64:
; X64:       # %bb.0:
; X64-NEXT:    movq %rsi, %rcx
; X64-NEXT:    # kill: def $cl killed $rcx
; X64-NEXT:    sarq %cl, %rdi
; X64-NEXT:    movq %rdi, %rax
; X64-NEXT:    retq
  %res = ashr i64 %arg1, %arg2
  ret i64 %res
}

define i64 @test_ashr_i64_imm(i64 %arg1) {
; X64-LABEL: test_ashr_i64_imm:
; X64:       # %bb.0:
; X64-NEXT:    movq $5, %rcx
; X64-NEXT:    # kill: def $cl killed $rcx
; X64-NEXT:    sarq %cl, %rdi
; X64-NEXT:    movq %rdi, %rax
; X64-NEXT:    retq
  %res = ashr i64 %arg1, 5
  ret i64 %res
}

define i64 @test_ashr_i64_imm1(i64 %arg1) {
; X64-LABEL: test_ashr_i64_imm1:
; X64:       # %bb.0:
; X64-NEXT:    movq $1, %rcx
; X64-NEXT:    # kill: def $cl killed $rcx
; X64-NEXT:    sarq %cl, %rdi
; X64-NEXT:    movq %rdi, %rax
; X64-NEXT:    retq
  %res = ashr i64 %arg1, 1
  ret i64 %res
}

define i32 @test_ashr_i32(i32 %arg1, i32 %arg2) {
; X64-LABEL: test_ashr_i32:
; X64:       # %bb.0:
; X64-NEXT:    movl %esi, %ecx
; X64-NEXT:    # kill: def $cl killed $ecx
; X64-NEXT:    sarl %cl, %edi
; X64-NEXT:    movl %edi, %eax
; X64-NEXT:    retq
  %res = ashr i32 %arg1, %arg2
  ret i32 %res
}

define i32 @test_ashr_i32_imm(i32 %arg1) {
; X64-LABEL: test_ashr_i32_imm:
; X64:       # %bb.0:
; X64-NEXT:    movl $5, %ecx
; X64-NEXT:    # kill: def $cl killed $ecx
; X64-NEXT:    sarl %cl, %edi
; X64-NEXT:    movl %edi, %eax
; X64-NEXT:    retq
  %res = ashr i32 %arg1, 5
  ret i32 %res
}

define i32 @test_ashr_i32_imm1(i32 %arg1) {
; X64-LABEL: test_ashr_i32_imm1:
; X64:       # %bb.0:
; X64-NEXT:    movl $1, %ecx
; X64-NEXT:    # kill: def $cl killed $ecx
; X64-NEXT:    sarl %cl, %edi
; X64-NEXT:    movl %edi, %eax
; X64-NEXT:    retq
  %res = ashr i32 %arg1, 1
  ret i32 %res
}

define i16 @test_ashr_i16(i32 %arg1, i32 %arg2) {
; X64-LABEL: test_ashr_i16:
; X64:       # %bb.0:
; X64-NEXT:    movl %esi, %ecx
; X64-NEXT:    # kill: def $cl killed $cx
; X64-NEXT:    sarw %cl, %di
; X64-NEXT:    movl %edi, %eax
; X64-NEXT:    retq
  %a = trunc i32 %arg1 to i16
  %a2 = trunc i32 %arg2 to i16
  %res = ashr i16 %a, %a2
  ret i16 %res
}

define i16 @test_ashr_i16_imm(i32 %arg1) {
; X64-LABEL: test_ashr_i16_imm:
; X64:       # %bb.0:
; X64-NEXT:    movw $5, %cx
; X64-NEXT:    # kill: def $cl killed $cx
; X64-NEXT:    sarw %cl, %di
; X64-NEXT:    movl %edi, %eax
; X64-NEXT:    retq
  %a = trunc i32 %arg1 to i16
  %res = ashr i16 %a, 5
  ret i16 %res
}

define i16 @test_ashr_i16_imm1(i32 %arg1) {
; X64-LABEL: test_ashr_i16_imm1:
; X64:       # %bb.0:
; X64-NEXT:    movw $1, %cx
; X64-NEXT:    # kill: def $cl killed $cx
; X64-NEXT:    sarw %cl, %di
; X64-NEXT:    movl %edi, %eax
; X64-NEXT:    retq
  %a = trunc i32 %arg1 to i16
  %res = ashr i16 %a, 1
  ret i16 %res
}

define i8 @test_ashr_i8(i32 %arg1, i32 %arg2) {
; X64-LABEL: test_ashr_i8:
; X64:       # %bb.0:
; X64-NEXT:    movl %esi, %ecx
; X64-NEXT:    sarb %cl, %dil
; X64-NEXT:    movl %edi, %eax
; X64-NEXT:    retq
  %a = trunc i32 %arg1 to i8
  %a2 = trunc i32 %arg2 to i8
  %res = ashr i8 %a, %a2
  ret i8 %res
}

define i8 @test_ashr_i8_imm(i32 %arg1) {
; X64-LABEL: test_ashr_i8_imm:
; X64:       # %bb.0:
; X64-NEXT:    sarb $5, %dil
; X64-NEXT:    movl %edi, %eax
; X64-NEXT:    retq
  %a = trunc i32 %arg1 to i8
  %res = ashr i8 %a, 5
  ret i8 %res
}

define i8 @test_ashr_i8_imm1(i32 %arg1) {
; X64-LABEL: test_ashr_i8_imm1:
; X64:       # %bb.0:
; X64-NEXT:    sarb %dil
; X64-NEXT:    movl %edi, %eax
; X64-NEXT:    retq
  %a = trunc i32 %arg1 to i8
  %res = ashr i8 %a, 1
  ret i8 %res
}

define i1 @test_ashr_i1(i32 %arg1, i32 %arg2) {
; X64-LABEL: test_ashr_i1:
; X64:       # %bb.0:
; X64-NEXT:    shlb $7, %dil
; X64-NEXT:    sarb $7, %dil
; X64-NEXT:    andb $1, %sil
; X64-NEXT:    movl %esi, %ecx
; X64-NEXT:    sarb %cl, %dil
; X64-NEXT:    movl %edi, %eax
; X64-NEXT:    retq
  %a = trunc i32 %arg1 to i1
  %a2 = trunc i32 %arg2 to i1
  %res = ashr i1 %a, %a2
  ret i1 %res
}

define i1 @test_ashr_i1_imm1(i32 %arg1) {
; X64-LABEL: test_ashr_i1_imm1:
; X64:       # %bb.0:
; X64-NEXT:    movb $-1, %cl
; X64-NEXT:    shlb $7, %dil
; X64-NEXT:    sarb $7, %dil
; X64-NEXT:    andb $1, %cl
; X64-NEXT:    sarb %cl, %dil
; X64-NEXT:    movl %edi, %eax
; X64-NEXT:    retq
  %a = trunc i32 %arg1 to i1
  %res = ashr i1 %a, 1
  ret i1 %res
}
