; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 ; RUN: llc < %s -mtriple=aarch64 -mattr=+sve | FileCheck %s define @widget(i1 %arg, %arg1, %arg2, %arg3) { ; CHECK-LABEL: widget: ; CHECK: // %bb.0: // %bb ; CHECK-NEXT: mvn w8, w0 ; CHECK-NEXT: sbfx x8, x8, #0, #1 ; CHECK-NEXT: whilelo p1.s, xzr, x8 ; CHECK-NEXT: mov z1.s, p1/z, #1 // =0x1 ; CHECK-NEXT: orr z0.d, z1.d, z0.d ; CHECK-NEXT: mov z0.s, p0/m, z1.s ; CHECK-NEXT: ret bb: %insertelement = insertelement zeroinitializer, i1 %arg, i64 0 %shufflevector = shufflevector %insertelement, zeroinitializer, zeroinitializer %xor = xor %shufflevector, splat (i1 true) %zext = zext %xor to %select = select %arg1, zeroinitializer, %arg2 %or = or %select, %zext ret %or }