| // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py |
| // REQUIRES: aarch64-registered-target |
| // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s |
| // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK |
| // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -S -O1 -Werror -o /dev/null %s |
| #include <arm_sve.h> |
| |
| // CHECK-LABEL: @test_svptrue_b8( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 31) |
| // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| // CPP-CHECK-LABEL: @_Z15test_svptrue_b8v( |
| // CPP-CHECK-NEXT: entry: |
| // CPP-CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 31) |
| // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| svbool_t test_svptrue_b8() |
| { |
| return svptrue_b8(); |
| } |
| |
| // CHECK-LABEL: @test_svptrue_b16( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 8 x i1> @llvm.aarch64.sve.ptrue.nxv8i1(i32 31) |
| // CHECK-NEXT: [[TMP1:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv8i1(<vscale x 8 x i1> [[TMP0]]) |
| // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP1]] |
| // |
| // CPP-CHECK-LABEL: @_Z16test_svptrue_b16v( |
| // CPP-CHECK-NEXT: entry: |
| // CPP-CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 8 x i1> @llvm.aarch64.sve.ptrue.nxv8i1(i32 31) |
| // CPP-CHECK-NEXT: [[TMP1:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv8i1(<vscale x 8 x i1> [[TMP0]]) |
| // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP1]] |
| // |
| svbool_t test_svptrue_b16() |
| { |
| return svptrue_b16(); |
| } |
| |
| // CHECK-LABEL: @test_svptrue_b32( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 4 x i1> @llvm.aarch64.sve.ptrue.nxv4i1(i32 31) |
| // CHECK-NEXT: [[TMP1:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv4i1(<vscale x 4 x i1> [[TMP0]]) |
| // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP1]] |
| // |
| // CPP-CHECK-LABEL: @_Z16test_svptrue_b32v( |
| // CPP-CHECK-NEXT: entry: |
| // CPP-CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 4 x i1> @llvm.aarch64.sve.ptrue.nxv4i1(i32 31) |
| // CPP-CHECK-NEXT: [[TMP1:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv4i1(<vscale x 4 x i1> [[TMP0]]) |
| // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP1]] |
| // |
| svbool_t test_svptrue_b32() |
| { |
| return svptrue_b32(); |
| } |
| |
| // CHECK-LABEL: @test_svptrue_b64( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 2 x i1> @llvm.aarch64.sve.ptrue.nxv2i1(i32 31) |
| // CHECK-NEXT: [[TMP1:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv2i1(<vscale x 2 x i1> [[TMP0]]) |
| // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP1]] |
| // |
| // CPP-CHECK-LABEL: @_Z16test_svptrue_b64v( |
| // CPP-CHECK-NEXT: entry: |
| // CPP-CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 2 x i1> @llvm.aarch64.sve.ptrue.nxv2i1(i32 31) |
| // CPP-CHECK-NEXT: [[TMP1:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv2i1(<vscale x 2 x i1> [[TMP0]]) |
| // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP1]] |
| // |
| svbool_t test_svptrue_b64() |
| { |
| return svptrue_b64(); |
| } |
| |
| // CHECK-LABEL: @test_svptrue_pat_b8( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 0) |
| // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| // CPP-CHECK-LABEL: @_Z19test_svptrue_pat_b8v( |
| // CPP-CHECK-NEXT: entry: |
| // CPP-CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 0) |
| // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| svbool_t test_svptrue_pat_b8() |
| { |
| return svptrue_pat_b8(SV_POW2); |
| } |
| |
| // CHECK-LABEL: @test_svptrue_pat_b8_1( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 1) |
| // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| // CPP-CHECK-LABEL: @_Z21test_svptrue_pat_b8_1v( |
| // CPP-CHECK-NEXT: entry: |
| // CPP-CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 1) |
| // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| svbool_t test_svptrue_pat_b8_1() |
| { |
| return svptrue_pat_b8(SV_VL1); |
| } |
| |
| // CHECK-LABEL: @test_svptrue_pat_b8_2( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 2) |
| // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| // CPP-CHECK-LABEL: @_Z21test_svptrue_pat_b8_2v( |
| // CPP-CHECK-NEXT: entry: |
| // CPP-CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 2) |
| // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| svbool_t test_svptrue_pat_b8_2() |
| { |
| return svptrue_pat_b8(SV_VL2); |
| } |
| |
| // CHECK-LABEL: @test_svptrue_pat_b8_3( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 3) |
| // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| // CPP-CHECK-LABEL: @_Z21test_svptrue_pat_b8_3v( |
| // CPP-CHECK-NEXT: entry: |
| // CPP-CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 3) |
| // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| svbool_t test_svptrue_pat_b8_3() |
| { |
| return svptrue_pat_b8(SV_VL3); |
| } |
| |
| // CHECK-LABEL: @test_svptrue_pat_b8_4( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 4) |
| // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| // CPP-CHECK-LABEL: @_Z21test_svptrue_pat_b8_4v( |
| // CPP-CHECK-NEXT: entry: |
| // CPP-CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 4) |
| // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| svbool_t test_svptrue_pat_b8_4() |
| { |
| return svptrue_pat_b8(SV_VL4); |
| } |
| |
| // CHECK-LABEL: @test_svptrue_pat_b8_5( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 5) |
| // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| // CPP-CHECK-LABEL: @_Z21test_svptrue_pat_b8_5v( |
| // CPP-CHECK-NEXT: entry: |
| // CPP-CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 5) |
| // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| svbool_t test_svptrue_pat_b8_5() |
| { |
| return svptrue_pat_b8(SV_VL5); |
| } |
| |
| // CHECK-LABEL: @test_svptrue_pat_b8_6( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 6) |
| // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| // CPP-CHECK-LABEL: @_Z21test_svptrue_pat_b8_6v( |
| // CPP-CHECK-NEXT: entry: |
| // CPP-CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 6) |
| // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| svbool_t test_svptrue_pat_b8_6() |
| { |
| return svptrue_pat_b8(SV_VL6); |
| } |
| |
| // CHECK-LABEL: @test_svptrue_pat_b8_7( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 7) |
| // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| // CPP-CHECK-LABEL: @_Z21test_svptrue_pat_b8_7v( |
| // CPP-CHECK-NEXT: entry: |
| // CPP-CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 7) |
| // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| svbool_t test_svptrue_pat_b8_7() |
| { |
| return svptrue_pat_b8(SV_VL7); |
| } |
| |
| // CHECK-LABEL: @test_svptrue_pat_b8_8( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 8) |
| // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| // CPP-CHECK-LABEL: @_Z21test_svptrue_pat_b8_8v( |
| // CPP-CHECK-NEXT: entry: |
| // CPP-CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 8) |
| // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| svbool_t test_svptrue_pat_b8_8() |
| { |
| return svptrue_pat_b8(SV_VL8); |
| } |
| |
| // CHECK-LABEL: @test_svptrue_pat_b8_9( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 9) |
| // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| // CPP-CHECK-LABEL: @_Z21test_svptrue_pat_b8_9v( |
| // CPP-CHECK-NEXT: entry: |
| // CPP-CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 9) |
| // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| svbool_t test_svptrue_pat_b8_9() |
| { |
| return svptrue_pat_b8(SV_VL16); |
| } |
| |
| // CHECK-LABEL: @test_svptrue_pat_b8_10( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 10) |
| // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| // CPP-CHECK-LABEL: @_Z22test_svptrue_pat_b8_10v( |
| // CPP-CHECK-NEXT: entry: |
| // CPP-CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 10) |
| // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| svbool_t test_svptrue_pat_b8_10() |
| { |
| return svptrue_pat_b8(SV_VL32); |
| } |
| |
| // CHECK-LABEL: @test_svptrue_pat_b8_11( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 11) |
| // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| // CPP-CHECK-LABEL: @_Z22test_svptrue_pat_b8_11v( |
| // CPP-CHECK-NEXT: entry: |
| // CPP-CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 11) |
| // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| svbool_t test_svptrue_pat_b8_11() |
| { |
| return svptrue_pat_b8(SV_VL64); |
| } |
| |
| // CHECK-LABEL: @test_svptrue_pat_b8_12( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 12) |
| // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| // CPP-CHECK-LABEL: @_Z22test_svptrue_pat_b8_12v( |
| // CPP-CHECK-NEXT: entry: |
| // CPP-CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 12) |
| // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| svbool_t test_svptrue_pat_b8_12() |
| { |
| return svptrue_pat_b8(SV_VL128); |
| } |
| |
| // CHECK-LABEL: @test_svptrue_pat_b8_13( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 13) |
| // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| // CPP-CHECK-LABEL: @_Z22test_svptrue_pat_b8_13v( |
| // CPP-CHECK-NEXT: entry: |
| // CPP-CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 13) |
| // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| svbool_t test_svptrue_pat_b8_13() |
| { |
| return svptrue_pat_b8(SV_VL256); |
| } |
| |
| // CHECK-LABEL: @test_svptrue_pat_b8_14( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 29) |
| // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| // CPP-CHECK-LABEL: @_Z22test_svptrue_pat_b8_14v( |
| // CPP-CHECK-NEXT: entry: |
| // CPP-CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 29) |
| // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| svbool_t test_svptrue_pat_b8_14() |
| { |
| return svptrue_pat_b8(SV_MUL4); |
| } |
| |
| // CHECK-LABEL: @test_svptrue_pat_b8_15( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 30) |
| // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| // CPP-CHECK-LABEL: @_Z22test_svptrue_pat_b8_15v( |
| // CPP-CHECK-NEXT: entry: |
| // CPP-CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 30) |
| // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| svbool_t test_svptrue_pat_b8_15() |
| { |
| return svptrue_pat_b8(SV_MUL3); |
| } |
| |
| // CHECK-LABEL: @test_svptrue_pat_b8_16( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 31) |
| // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| // CPP-CHECK-LABEL: @_Z22test_svptrue_pat_b8_16v( |
| // CPP-CHECK-NEXT: entry: |
| // CPP-CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.ptrue.nxv16i1(i32 31) |
| // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP0]] |
| // |
| svbool_t test_svptrue_pat_b8_16() |
| { |
| return svptrue_pat_b8(SV_ALL); |
| } |
| |
| // CHECK-LABEL: @test_svptrue_pat_b16( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 8 x i1> @llvm.aarch64.sve.ptrue.nxv8i1(i32 0) |
| // CHECK-NEXT: [[TMP1:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv8i1(<vscale x 8 x i1> [[TMP0]]) |
| // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP1]] |
| // |
| // CPP-CHECK-LABEL: @_Z20test_svptrue_pat_b16v( |
| // CPP-CHECK-NEXT: entry: |
| // CPP-CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 8 x i1> @llvm.aarch64.sve.ptrue.nxv8i1(i32 0) |
| // CPP-CHECK-NEXT: [[TMP1:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv8i1(<vscale x 8 x i1> [[TMP0]]) |
| // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP1]] |
| // |
| svbool_t test_svptrue_pat_b16() |
| { |
| return svptrue_pat_b16(SV_POW2); |
| } |
| |
| // CHECK-LABEL: @test_svptrue_pat_b32( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 4 x i1> @llvm.aarch64.sve.ptrue.nxv4i1(i32 1) |
| // CHECK-NEXT: [[TMP1:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv4i1(<vscale x 4 x i1> [[TMP0]]) |
| // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP1]] |
| // |
| // CPP-CHECK-LABEL: @_Z20test_svptrue_pat_b32v( |
| // CPP-CHECK-NEXT: entry: |
| // CPP-CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 4 x i1> @llvm.aarch64.sve.ptrue.nxv4i1(i32 1) |
| // CPP-CHECK-NEXT: [[TMP1:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv4i1(<vscale x 4 x i1> [[TMP0]]) |
| // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP1]] |
| // |
| svbool_t test_svptrue_pat_b32() |
| { |
| return svptrue_pat_b32(SV_VL1); |
| } |
| |
| // CHECK-LABEL: @test_svptrue_pat_b64( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 2 x i1> @llvm.aarch64.sve.ptrue.nxv2i1(i32 2) |
| // CHECK-NEXT: [[TMP1:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv2i1(<vscale x 2 x i1> [[TMP0]]) |
| // CHECK-NEXT: ret <vscale x 16 x i1> [[TMP1]] |
| // |
| // CPP-CHECK-LABEL: @_Z20test_svptrue_pat_b64v( |
| // CPP-CHECK-NEXT: entry: |
| // CPP-CHECK-NEXT: [[TMP0:%.*]] = call <vscale x 2 x i1> @llvm.aarch64.sve.ptrue.nxv2i1(i32 2) |
| // CPP-CHECK-NEXT: [[TMP1:%.*]] = call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv2i1(<vscale x 2 x i1> [[TMP0]]) |
| // CPP-CHECK-NEXT: ret <vscale x 16 x i1> [[TMP1]] |
| // |
| svbool_t test_svptrue_pat_b64() |
| { |
| return svptrue_pat_b64(SV_VL2); |
| } |