brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · 48ce0c1 Raw
74 lines · plain
1; RUN: llc -mtriple=arm64-eabi -mattr=+crc -o - %s | FileCheck %s2; RUN: llc -mtriple=arm64-eabi -mattr=+v8r -o - %s | FileCheck %s3; RUN: llc -mtriple=arm64-eabi -mcpu=cortex-a53 -mattr=+crc -o - %s | FileCheck %s4 5define i32 @test_crc32b(i32 %cur, i8 %next) {6; CHECK-LABEL: test_crc32b:7; CHECK: crc32b w0, w0, w18  %bits = zext i8 %next to i329  %val = call i32 @llvm.aarch64.crc32b(i32 %cur, i32 %bits)10  ret i32 %val11}12 13define i32 @test_crc32h(i32 %cur, i16 %next) {14; CHECK-LABEL: test_crc32h:15; CHECK: crc32h w0, w0, w116  %bits = zext i16 %next to i3217  %val = call i32 @llvm.aarch64.crc32h(i32 %cur, i32 %bits)18  ret i32 %val19}20 21define i32 @test_crc32w(i32 %cur, i32 %next) {22; CHECK-LABEL: test_crc32w:23; CHECK: crc32w w0, w0, w124  %val = call i32 @llvm.aarch64.crc32w(i32 %cur, i32 %next)25  ret i32 %val26}27 28define i32 @test_crc32x(i32 %cur, i64 %next) {29; CHECK-LABEL: test_crc32x:30; CHECK: crc32x w0, w0, x131  %val = call i32 @llvm.aarch64.crc32x(i32 %cur, i64 %next)32  ret i32 %val33}34 35define i32 @test_crc32cb(i32 %cur, i8 %next) {36; CHECK-LABEL: test_crc32cb:37; CHECK: crc32cb w0, w0, w138  %bits = zext i8 %next to i3239  %val = call i32 @llvm.aarch64.crc32cb(i32 %cur, i32 %bits)40  ret i32 %val41}42 43define i32 @test_crc32ch(i32 %cur, i16 %next) {44; CHECK-LABEL: test_crc32ch:45; CHECK: crc32ch w0, w0, w146  %bits = zext i16 %next to i3247  %val = call i32 @llvm.aarch64.crc32ch(i32 %cur, i32 %bits)48  ret i32 %val49}50 51define i32 @test_crc32cw(i32 %cur, i32 %next) {52; CHECK-LABEL: test_crc32cw:53; CHECK: crc32cw w0, w0, w154  %val = call i32 @llvm.aarch64.crc32cw(i32 %cur, i32 %next)55  ret i32 %val56}57 58define i32 @test_crc32cx(i32 %cur, i64 %next) {59; CHECK-LABEL: test_crc32cx:60; CHECK: crc32cx w0, w0, x161  %val = call i32 @llvm.aarch64.crc32cx(i32 %cur, i64 %next)62  ret i32 %val63}64 65declare i32 @llvm.aarch64.crc32b(i32, i32)66declare i32 @llvm.aarch64.crc32h(i32, i32)67declare i32 @llvm.aarch64.crc32w(i32, i32)68declare i32 @llvm.aarch64.crc32x(i32, i64)69 70declare i32 @llvm.aarch64.crc32cb(i32, i32)71declare i32 @llvm.aarch64.crc32ch(i32, i32)72declare i32 @llvm.aarch64.crc32cw(i32, i32)73declare i32 @llvm.aarch64.crc32cx(i32, i64)74