f63f528
diff -up llvm-2.8/lib/Target/X86/X86Subtarget.cpp.jx llvm-2.8/lib/Target/X86/X86Subtarget.cpp
f63f528
--- llvm-2.8/lib/Target/X86/X86Subtarget.cpp.jx	2010-08-21 13:21:11.000000000 -0400
f63f528
+++ llvm-2.8/lib/Target/X86/X86Subtarget.cpp	2011-04-26 16:02:52.238855091 -0400
f63f528
@@ -262,7 +262,7 @@ void X86Subtarget::AutoDetectSubtargetFe
f63f528
 
f63f528
   HasCLMUL = IsIntel && ((ECX >> 1) & 0x1);
f63f528
   HasFMA3  = IsIntel && ((ECX >> 12) & 0x1);
f63f528
-  HasAVX   = ((ECX >> 28) & 0x1);
f63f528
+  HasAVX   = 0;
f63f528
   HasAES   = IsIntel && ((ECX >> 25) & 0x1);
f63f528
 
f63f528
   if (IsIntel || IsAMD) {
f63f528
diff -up llvm-2.8/lib/Target/X86/X86Subtarget.h.jx llvm-2.8/lib/Target/X86/X86Subtarget.h
f63f528
--- llvm-2.8/lib/Target/X86/X86Subtarget.h.jx	2010-09-02 19:03:46.000000000 -0400
f63f528
+++ llvm-2.8/lib/Target/X86/X86Subtarget.h	2011-04-26 16:01:23.336855019 -0400
f63f528
@@ -150,7 +150,7 @@ public:
f63f528
   bool hasSSE4A() const { return HasSSE4A; }
f63f528
   bool has3DNow() const { return X863DNowLevel >= ThreeDNow; }
f63f528
   bool has3DNowA() const { return X863DNowLevel >= ThreeDNowA; }
f63f528
-  bool hasAVX() const { return HasAVX; }
f63f528
+  bool hasAVX() const { return false; }
f63f528
   bool hasAES() const { return HasAES; }
f63f528
   bool hasCLMUL() const { return HasCLMUL; }
f63f528
   bool hasFMA3() const { return HasFMA3; }
f63f528
diff -up llvm-2.8/lib/Target/X86/X86.td.jx llvm-2.8/lib/Target/X86/X86.td
f63f528
--- llvm-2.8/lib/Target/X86/X86.td.jx	2010-08-11 20:55:32.000000000 -0400
f63f528
+++ llvm-2.8/lib/Target/X86/X86.td	2011-04-26 16:02:21.127854790 -0400
f63f528
@@ -116,7 +116,8 @@ def : Proc<"westmere",         [FeatureS
f63f528
                                 FeatureFastUAMem, FeatureAES]>;
f63f528
 // Sandy Bridge does not have FMA
f63f528
 // FIXME: Wikipedia says it does... it should have AES as well.
f63f528
-def : Proc<"sandybridge",     [FeatureSSE42,  FeatureAVX,   Feature64Bit]>;
f63f528
+// FEDORA: AVX is broken in 2.8
f63f528
+def : Proc<"sandybridge",     [FeatureSSE42,  Feature64Bit]>;
f63f528
 
f63f528
 def : Proc<"k6",              [FeatureMMX]>;
f63f528
 def : Proc<"k6-2",            [FeatureMMX,    Feature3DNow]>;
f63f528
diff -up llvm-2.8/tools/clang/lib/Basic/Targets.cpp.jx llvm-2.8/tools/clang/lib/Basic/Targets.cpp
f63f528
--- llvm-2.8/tools/clang/lib/Basic/Targets.cpp.jx	2010-08-31 12:44:54.000000000 -0400
f63f528
+++ llvm-2.8/tools/clang/lib/Basic/Targets.cpp	2011-04-26 16:03:40.768855658 -0400
f63f528
@@ -1048,8 +1048,6 @@ bool X86TargetInfo::setFeatureEnabled(ll
f63f528
       Features["3dnow"] = Features["3dnowa"] = true;
f63f528
     else if (Name == "aes")
f63f528
       Features["aes"] = true;
f63f528
-    else if (Name == "avx")
f63f528
-      Features["avx"] = true;
f63f528
   } else {
f63f528
     if (Name == "mmx")
f63f528
       Features["mmx"] = Features["sse"] = Features["sse2"] = Features["sse3"] =
f63f528
@@ -1101,7 +1099,6 @@ void X86TargetInfo::HandleTargetFeatures
f63f528
     // FIXME: Not sure yet how to treat AVX in regard to SSE levels.
f63f528
     // For now let it be enabled together with other SSE levels.
f63f528
     if (Features[i].substr(1) == "avx") {
f63f528
-      HasAVX = true;
f63f528
       continue;
f63f528
     }
f63f528
 
f63f528
@@ -1146,9 +1143,6 @@ void X86TargetInfo::getTargetDefines(con
f63f528
   if (HasAES)
f63f528
     Builder.defineMacro("__AES__");
f63f528
 
f63f528
-  if (HasAVX)
f63f528
-    Builder.defineMacro("__AVX__");
f63f528
-
f63f528
   // Target properties.
f63f528
   Builder.defineMacro("__LITTLE_ENDIAN__");
f63f528