Home | History | Annotate | Download | only in AArch64
      1 ; RUN: llc -mtriple=aarch64-linux-gnuabi -O0 < %s | FileCheck %s
      2 ; RUN: llc -mtriple=aarch64_be-linux-gnuabi -O0 < %s | FileCheck %s --check-prefix=CHECK-BE
      3 
      4 define void @test_bitcast_v8f16_to_v4f32(<8 x half> %a) {
      5 ; CHECK-LABEL: test_bitcast_v8f16_to_v4f32:
      6 ; CHECK-NOT: st1
      7 
      8 ; CHECK-BE-LABEL: test_bitcast_v8f16_to_v4f32:
      9 ; CHECK-BE: st1
     10 
     11   %x = alloca <4 x float>, align 16
     12   %y = bitcast <8 x half> %a to <4 x float>
     13   store <4 x float> %y, <4 x float>* %x, align 16
     14   ret void
     15 }
     16 
     17 define void @test_bitcast_v8f16_to_v2f64(<8 x half> %a) {
     18 ; CHECK-LABEL: test_bitcast_v8f16_to_v2f64:
     19 ; CHECK-NOT: st1
     20 
     21 ; CHECK-BE-LABEL: test_bitcast_v8f16_to_v2f64:
     22 ; CHECK-BE: st1
     23 
     24   %x = alloca <2 x double>, align 16
     25   %y = bitcast <8 x half> %a to <2 x double>
     26   store <2 x double> %y, <2 x double>* %x, align 16
     27   ret void
     28 }
     29 
     30 define void @test_bitcast_v8f16_to_fp128(<8 x half> %a) {
     31 ; CHECK-LABEL: test_bitcast_v8f16_to_fp128:
     32 ; CHECK-NOT: st1
     33 
     34 ; CHECK-BE-LABEL: test_bitcast_v8f16_to_fp128:
     35 ; CHECK-BE: st1
     36 
     37   %x = alloca fp128, align 16
     38   %y = bitcast <8 x half> %a to fp128
     39   store fp128 %y, fp128* %x, align 16
     40   ret void
     41 }
     42 
     43 define void @test_bitcast_v4f16_to_v2f32(<4 x half> %a) {
     44 ; CHECK-LABEL: test_bitcast_v4f16_to_v2f32:
     45 ; CHECK-NOT: st1
     46 
     47 ; CHECK-BE-LABEL: test_bitcast_v4f16_to_v2f32:
     48 ; CHECK-BE: st1
     49 
     50   %x = alloca <2 x float>, align 8
     51   %y = bitcast <4 x half> %a to <2 x float>
     52   store <2 x float> %y, <2 x float>* %x, align 8
     53   ret void
     54 }
     55 
     56 define void @test_bitcast_v4f16_to_v1f64(<4 x half> %a) {
     57 ; CHECK-LABEL: test_bitcast_v4f16_to_v1f64:
     58 ; CHECK-NOT: st1
     59 
     60 ; CHECK-BE-LABEL: test_bitcast_v4f16_to_v1f64:
     61 ; CHECK-BE: st1
     62 
     63   %x = alloca <1 x double>, align 8
     64   %y = bitcast <4 x half> %a to <1 x double>
     65   store <1 x double> %y, <1 x double>* %x, align 8
     66   ret void
     67 }
     68