mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-24 07:35:04 +00:00
[AArch64] Fix memset ICE when memset value is f128.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211960 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
1cfa342dc1
commit
d7be29696d
@ -3631,7 +3631,7 @@ static SDValue getMemsetStringVal(EVT VT, SDLoc dl, SelectionDAG &DAG,
|
||||
if (Str.empty()) {
|
||||
if (VT.isInteger())
|
||||
return DAG.getConstant(0, VT);
|
||||
else if (VT == MVT::f32 || VT == MVT::f64)
|
||||
else if (VT == MVT::f32 || VT == MVT::f64 || VT == MVT::f128)
|
||||
return DAG.getConstantFP(0.0, VT);
|
||||
else if (VT.isVector()) {
|
||||
unsigned NumElts = VT.getVectorNumElements();
|
||||
|
19
test/CodeGen/AArch64/memcpy-f128.ll
Normal file
19
test/CodeGen/AArch64/memcpy-f128.ll
Normal file
@ -0,0 +1,19 @@
|
||||
; RUN: llc < %s -march=aarch64 -mtriple=aarch64-linux-gnu | FileCheck %s
|
||||
|
||||
%structA = type { i128 }
|
||||
@stubA = internal unnamed_addr constant %structA zeroinitializer, align 8
|
||||
|
||||
; Make sure we don't hit llvm_unreachable.
|
||||
|
||||
define void @test1() {
|
||||
; CHECK-LABEL: @test1
|
||||
; CHECK: adrp
|
||||
; CHECK: ldr q0
|
||||
; CHECK: str q0
|
||||
; CHECK: ret
|
||||
entry:
|
||||
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* undef, i8* bitcast (%structA* @stubA to i8*), i64 48, i32 8, i1 false)
|
||||
ret void
|
||||
}
|
||||
|
||||
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i32, i1)
|
Loading…
x
Reference in New Issue
Block a user