20 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mcpu=core-avx-i -mattr=+rdseed | FileCheck %s3 4declare {i64, i32} @llvm.x86.rdseed.64()5 6define i32 @_rdseed64_step(ptr %random_val) {7; CHECK-LABEL: _rdseed64_step:8; CHECK: # %bb.0:9; CHECK-NEXT: rdseedq %rcx10; CHECK-NEXT: movl $1, %eax11; CHECK-NEXT: cmovael %ecx, %eax12; CHECK-NEXT: movq %rcx, (%rdi)13; CHECK-NEXT: retq14 %call = call {i64, i32} @llvm.x86.rdseed.64()15 %randval = extractvalue {i64, i32} %call, 016 store i64 %randval, ptr %random_val17 %isvalid = extractvalue {i64, i32} %call, 118 ret i32 %isvalid19}20